• DevOps
  • devops-argocd-dex-server CrashLoopBackOff

我的集群环境安装也是同样的报错信息。

环境版本如下:

k8s version: v1.23.17

docker version: 24.0.6

10 天 后
1 个月 后

这么解决的呢,devops一直启用不成功

    p-m-q devops 启用不成功有什么报错吗 ? 还是只有这个 devops-argocd-dex-server-xxxx pod 一直 CrashLoopBackOff ?

      yudong

      我是启用devops,但是启用失败。我是allinone在线安装,安装后启用devops,没有启用成功。帮忙分析下,报错如下

      PLAY RECAP *********************************************************************

      localhost : ok=25 changed=14 unreachable=0 failed=0 skipped=22 rescued=0 ignored=0

      Start installing monitoring

      Start installing multicluster

      Start installing openpitrix

      Start installing network

      Start installing devops

      **************************************************

      Waiting for all tasks to be completed …

      task network status is successful (⅕)

      task openpitrix status is successful (⅖)

      task multicluster status is successful (⅗)

      task monitoring status is successful (⅘)

      task devops status is failed (5/5)

      **************************************************

      Collecting installation results …

      Task ‘devops’ failed:

      ******************************************************************************************************************************************************

      {

      “counter”: 144,

      “created”: “2024-02-19T03:13:42.321062”,

      “end_line”: 174,

      “event”: “runner_on_failed”,

      “event_data”: {

      "duration": 400.773811,
      
      "end": "2024-02-19T03:13:42.320722",
      
      "event_loop": null,
      
      "host": "localhost",
      
      "ignore_errors": null,
      
      "play": "localhost",
      
      "play_pattern": "localhost",
      
      "play_uuid": "a6dde999-4ee5-c3a9-17e0-000000000005",
      
      "playbook": "/kubesphere/playbooks/devops.yaml",
      
      "playbook_uuid": "89d0fe33-1f1a-4fe7-82ae-d5c7f9780cac",
      
      "remote_addr": "127.0.0.1",
      
      "res": {
      
        "_ansible_no_log": false,
      
        "attempts": 3,
      
        "changed": true,
      
        "cmd": "# Delete Job migrate because 'helm upgrade' will try to update immutable fields of Job, which is not allowed.\\n/usr/local/bin/kubectl delete job -n kubesphere-devops-system migrate --ignore-not-found\\n\\nks_devops_chart_version=0.2.2\\ncharts_folder=/kubesphere/kubesphere/ks-devops/charts\\nks_devops_chart=$charts_folder/ks-devops-$ks_devops_chart_version.tgz\\n\\n# Create or update CRDs manually\\ntar xzvf $ks_devops_chart -C $charts_folder\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/crds\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/charts/s2i/crds\\n\\n# Waiting for CRD to complete the upgrade\\nsleep 10\\n\\n# Import the templates seperately due the potential webhook issues\\nrm -rf s2i-templates\\nhelm template  $charts_folder/ks-devops/charts/s2i/  -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml  -s templates/binary.yaml  -s templates/java.yaml  -s templates/nodejs.yaml  -s templates/python.yaml  -s templates/tomcat.yaml > s2i-templates\\\\templates.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/binary.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/java.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/nodejs.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/python.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/tomcat.yaml\\n\\n/usr/local/bin/helm upgrade --install devops $ks_devops_chart -n kubesphere-devops-system -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml --wait\\n\\n/usr/local/bin/kubectl apply -f s2i-templates\\\\templates.yaml\\n",
      
        "delta": "0:00:15.961917",
      
        "end": "2024-02-19 11:13:42.266312",
      
        "invocation": {
      
          "module_args": {
      
            "_raw_params": "# Delete Job migrate because 'helm upgrade' will try to update immutable fields of Job, which is not allowed.\\n/usr/local/bin/kubectl delete job -n kubesphere-devops-system migrate --ignore-not-found\\n\\nks_devops_chart_version=0.2.2\\ncharts_folder=/kubesphere/kubesphere/ks-devops/charts\\nks_devops_chart=$charts_folder/ks-devops-$ks_devops_chart_version.tgz\\n\\n# Create or update CRDs manually\\ntar xzvf $ks_devops_chart -C $charts_folder\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/crds\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/charts/s2i/crds\\n\\n# Waiting for CRD to complete the upgrade\\nsleep 10\\n\\n# Import the templates seperately due the potential webhook issues\\nrm -rf s2i-templates\\nhelm template  $charts_folder/ks-devops/charts/s2i/  -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml  -s templates/binary.yaml  -s templates/java.yaml  -s templates/nodejs.yaml  -s templates/python.yaml  -s templates/tomcat.yaml > s2i-templates\\\\templates.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/binary.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/java.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/nodejs.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/python.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/tomcat.yaml\\n\\n/usr/local/bin/helm upgrade --install devops $ks_devops_chart -n kubesphere-devops-system -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml --wait\\n\\n/usr/local/bin/kubectl apply -f s2i-templates\\\\templates.yaml\\n",
      
            "_uses_shell": true,
      
            "argv": null,
      
            "chdir": null,
      
            "creates": null,
      
            "executable": "/bin/bash",
      
            "removes": null,
      
            "stdin": null,
      
            "stdin_add_newline": true,
      
            "strip_empty_ends": true,
      
            "warn": true
      
          }
      
        },
      
        "msg": "non-zero return code",
      
        "rc": 1,
      
        "start": "2024-02-19 11:13:26.304395",
      
        "stderr": "Error: UPGRADE FAILED: cannot patch \\"binary\\" with kind S2iBuilderTemplate: Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nWarning: resource s2ibuildertemplates/binary is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/java is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/nodejs is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/python is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/tomcat is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"\\u4e8c\\u8fdb\\u5236\\u6587\\u4ef6\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-binary-container\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"binary\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling binary,\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/binary.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"binary\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Java \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002\\u901a\\u8fc7\\u8be5\\u6a21\\u7248\\u53ef\\u6784\\u5efa\\u51fa\\u76f4\\u63a5\\u8fd0\\u884c\\u7684\\u5e94\\u7528\\u955c\\u50cf\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\").\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-java-container/blob/master/java/images\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"jar\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"java\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"java\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-8-runtime:v3.2.0\\\\\\"},{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-11-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-11-runtime:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\")\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling Maven, replacing the default package hawt-app:build -DskipTests -e. Please be sure to run the hawt-app:build goal (when not already bound to the package execution phase), otherwise the startup scripts won't work.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Additional Maven arguments, useful for temporary adding arguments like -X or -am -pl .\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS_APPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"With Repositories you specify from which locations you want to download certain artifacts, such as dependencies and maven-plugins.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_MIRROR_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set then the Maven repository is removed after the artifact is built. This is useful for keeping the created application image small, but prevents incremental builds. The default is false\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_CLEAR_REPO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to target/ where the jar files are created for multi module builds. These are added to ${MAVEN_ARGS}\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when copying artifacts from the output dir to the application dir. Useful to specify which artifacts will be part of the image. It defaults to -r hawt-app/\* when a hawt-app dir is found on the build directory, otherwise jar files only will be included (\*.jar).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_COPY_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the directory where the application resides. All paths in your application are relative to this directory. By default it is the same directory where this startup script resides.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"directory holding the Java jar files as well an optional classpath file which holds the classpath. Either as a single line classpath (colon separated) or with jar files listed line-by-line. If not set JAVA_LIB_DIR is the same as JAVA_APP_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_LIB_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"options to add when calling java\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_OPTIONS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"a number \\\\\\\\u003e= 7. If the version is set then only options suitable for this version are used. When set to 7 options known only to Java \\\\\\\\u003e 8 will be removed. For versions \\\\\\\\u003e= 10 no explicit memory limit is calculated since Java \\\\\\\\u003e= 10 has support for container limits.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAJOR_VERSION\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xmx option is given in JAVA_OPTIONS. This is used to calculate a default maximal Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xmx is set to a ratio of the container available memory as set here. The default is 25 when the maximum amount of memory available to the container is below 300M, 50 otherwise, which means in that case that 50% of the available memory is used as an upper boundary. You can skip this mechanism by setting this value to 0 in which case no -Xmx option is added.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xms option is given in JAVA_OPTIONS. This is used to calculate a default initial Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xms is set to a ratio of the container available memory as set here. By default this value is not set.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_INIT_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"restrict manually the number of cores available which is used for calculating certain defaults like the number of garbage collector threads. If set to 0 no base JVM tuning based on the number of cores is performed.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_CORE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"set this to get some diagnostics information to standard out when things are happening\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DIAGNOSTICS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"main class to use as argument for java. When this environment variable is given, all jar files in $JAVA_APP_DIR are added to the classpath as well as $JAVA_LIB_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAIN_CLASS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"A jar file with an appropriate manifest so that it can be started with java -jar if no $JAVA_MAIN_CLASS is set. In all cases this jar file is added to the classpath, too.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_JAR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Name to use for the process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_NAME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the classpath to use. If not given, the startup script checks for a file ${JAVA_APP_DIR}/classpath and use its content literally as classpath. If this file doesn't exists all jars in the app dir are added (classes:${JAVA_APP_DIR}/\*).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_CLASSPATH\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set remote debugging will be switched on\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set enables suspend mode in remote debugging\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_SUSPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Port used for remote debugging. Default: 5005\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_PORT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the http.proxyHost and http.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the https.proxyHost and https.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The list of hosts that should be reached directly, bypassing the proxy, that translates into the http.nonProxyHosts system property.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NO_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/java.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.2\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"java\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Nodejs \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Node.js \\u662f\\u57fa\\u4e8e Chrome \\u7684 JavaScript \\u8fd0\\u884c\\u65f6\\u6784\\u5efa\\u7684\\u5e73\\u53f0\\uff0c\\u53ef\\u8f7b\\u677e\\u6784\\u5efa\\u5feb\\u901f\\uff0c\\u53ef\\u6269\\u5c55\\u7684\\u7f51\\u7edc\\u5e94\\u7528\\u7a0b\\u5e8f\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-nodejs-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"nodejs\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"nodejs\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-6-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-4-centos7:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"NodeJS runtime mode (default: \\\\\\\\\\\\\\"production\\\\\\\\\\\\\\")\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NODE_ENV\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"When set to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\", nodemon will be used to automatically reload the server while you work (default: \\\\\\\\\\\\\\"false\\\\\\\\\\\\\\"). Setting DEV_MODE to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\" will change the NODE_ENV default to \\\\\\\\\\\\\\"development\\\\\\\\\\\\\\" (if not explicitly set).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DEV_MODE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Select an alternate / custom runtime mode, defined in your package.json file's scripts section (default: npm run \\\\\\\\\\\\\\"start\\\\\\\\\\\\\\"). These user-defined run-scripts are unavailable while DEV_MODE is in use.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_RUN\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use a custom NPM registry mirror to download packages during the build process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_MIRROR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to use \\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" get dependencies\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ENABLED\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"\\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" args\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/nodejs.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"nodejs\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Python \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Python \\u662f\\u4e00\\u79cd\\u6613\\u4e8e\\u5b66\\u4e60\\uff0c\\u529f\\u80fd\\u5f3a\\u5927\\u7684\\u7f16\\u7a0b\\u8bed\\u8a00\\u3002 \\u5b83\\u5177\\u6709\\u9ad8\\u6548\\u7684\\u9ad8\\u7ea7\\u6570\\u636e\\u7ed3\\u6784\\u548c\\u7b80\\u5355\\u4f46\\u6709\\u6548\\u7684\\u9762\\u5411\\u5bf9\\u8c61\\u7f16\\u7a0b\\u65b9\\u6cd5\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Python available as container is a base platform for building and running various Python applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-python-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"python\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"python\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-36-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-35-c

      PLAY RECAP *********************************************************************

      localhost : ok=25 changed=14 unreachable=0 failed=0 skipped=22 rescued=0 ignored=0

      Start installing monitoring

      Start installing multicluster

      Start installing openpitrix

      Start installing network

      Start installing devops

      **************************************************

      Waiting for all tasks to be completed …

      task network status is successful (⅕)

      task openpitrix status is successful (⅖)

      task multicluster status is successful (⅗)

      task monitoring status is successful (⅘)

      task devops status is failed (5/5)

      **************************************************

      Collecting installation results …

      Task ‘devops’ failed:

      ******************************************************************************************************************************************************

      {

      “counter”: 144,

      “created”: “2024-02-19T03:13:42.321062”,

      “end_line”: 174,

      “event”: “runner_on_failed”,

      “event_data”: {

      "duration": 400.773811,
      
      "end": "2024-02-19T03:13:42.320722",
      
      "event_loop": null,
      
      "host": "localhost",
      
      "ignore_errors": null,
      
      "play": "localhost",
      
      "play_pattern": "localhost",
      
      "play_uuid": "a6dde999-4ee5-c3a9-17e0-000000000005",
      
      "playbook": "/kubesphere/playbooks/devops.yaml",
      
      "playbook_uuid": "89d0fe33-1f1a-4fe7-82ae-d5c7f9780cac",
      
      "remote_addr": "127.0.0.1",
      
      "res": {
      
        "_ansible_no_log": false,
      
        "attempts": 3,
      
        "changed": true,
      
        "cmd": "# Delete Job migrate because 'helm upgrade' will try to update immutable fields of Job, which is not allowed.\\n/usr/local/bin/kubectl delete job -n kubesphere-devops-system migrate --ignore-not-found\\n\\nks_devops_chart_version=0.2.2\\ncharts_folder=/kubesphere/kubesphere/ks-devops/charts\\nks_devops_chart=$charts_folder/ks-devops-$ks_devops_chart_version.tgz\\n\\n# Create or update CRDs manually\\ntar xzvf $ks_devops_chart -C $charts_folder\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/crds\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/charts/s2i/crds\\n\\n# Waiting for CRD to complete the upgrade\\nsleep 10\\n\\n# Import the templates seperately due the potential webhook issues\\nrm -rf s2i-templates\\nhelm template  $charts_folder/ks-devops/charts/s2i/  -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml  -s templates/binary.yaml  -s templates/java.yaml  -s templates/nodejs.yaml  -s templates/python.yaml  -s templates/tomcat.yaml > s2i-templates\\\\templates.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/binary.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/java.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/nodejs.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/python.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/tomcat.yaml\\n\\n/usr/local/bin/helm upgrade --install devops $ks_devops_chart -n kubesphere-devops-system -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml --wait\\n\\n/usr/local/bin/kubectl apply -f s2i-templates\\\\templates.yaml\\n",
      
        "delta": "0:00:15.961917",
      
        "end": "2024-02-19 11:13:42.266312",
      
        "invocation": {
      
          "module_args": {
      
            "_raw_params": "# Delete Job migrate because 'helm upgrade' will try to update immutable fields of Job, which is not allowed.\\n/usr/local/bin/kubectl delete job -n kubesphere-devops-system migrate --ignore-not-found\\n\\nks_devops_chart_version=0.2.2\\ncharts_folder=/kubesphere/kubesphere/ks-devops/charts\\nks_devops_chart=$charts_folder/ks-devops-$ks_devops_chart_version.tgz\\n\\n# Create or update CRDs manually\\ntar xzvf $ks_devops_chart -C $charts_folder\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/crds\\n/usr/local/bin/kubectl apply -f $charts_folder/ks-devops/charts/s2i/crds\\n\\n# Waiting for CRD to complete the upgrade\\nsleep 10\\n\\n# Import the templates seperately due the potential webhook issues\\nrm -rf s2i-templates\\nhelm template  $charts_folder/ks-devops/charts/s2i/  -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml  -s templates/binary.yaml  -s templates/java.yaml  -s templates/nodejs.yaml  -s templates/python.yaml  -s templates/tomcat.yaml > s2i-templates\\\\templates.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/binary.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/java.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/nodejs.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/python.yaml\\nrm -rf $charts_folder/ks-devops/charts/s2i/templates/tomcat.yaml\\n\\n/usr/local/bin/helm upgrade --install devops $ks_devops_chart -n kubesphere-devops-system -f /kubesphere/kubesphere/ks-devops/ks-devops-values.yaml --wait\\n\\n/usr/local/bin/kubectl apply -f s2i-templates\\\\templates.yaml\\n",
      
            "_uses_shell": true,
      
            "argv": null,
      
            "chdir": null,
      
            "creates": null,
      
            "executable": "/bin/bash",
      
            "removes": null,
      
            "stdin": null,
      
            "stdin_add_newline": true,
      
            "strip_empty_ends": true,
      
            "warn": true
      
          }
      
        },
      
        "msg": "non-zero return code",
      
        "rc": 1,
      
        "start": "2024-02-19 11:13:26.304395",
      
        "stderr": "Error: UPGRADE FAILED: cannot patch \\"binary\\" with kind S2iBuilderTemplate: Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nWarning: resource s2ibuildertemplates/binary is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/java is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/nodejs is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/python is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nWarning: resource s2ibuildertemplates/tomcat is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"\\u4e8c\\u8fdb\\u5236\\u6587\\u4ef6\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-binary-container\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"binary\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling binary,\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/binary.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"binary\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Java \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002\\u901a\\u8fc7\\u8be5\\u6a21\\u7248\\u53ef\\u6784\\u5efa\\u51fa\\u76f4\\u63a5\\u8fd0\\u884c\\u7684\\u5e94\\u7528\\u955c\\u50cf\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\").\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-java-container/blob/master/java/images\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"jar\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"java\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"java\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-8-runtime:v3.2.0\\\\\\"},{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-11-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-11-runtime:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\")\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling Maven, replacing the default package hawt-app:build -DskipTests -e. Please be sure to run the hawt-app:build goal (when not already bound to the package execution phase), otherwise the startup scripts won't work.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Additional Maven arguments, useful for temporary adding arguments like -X or -am -pl .\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS_APPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"With Repositories you specify from which locations you want to download certain artifacts, such as dependencies and maven-plugins.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_MIRROR_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set then the Maven repository is removed after the artifact is built. This is useful for keeping the created application image small, but prevents incremental builds. The default is false\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_CLEAR_REPO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to target/ where the jar files are created for multi module builds. These are added to ${MAVEN_ARGS}\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when copying artifacts from the output dir to the application dir. Useful to specify which artifacts will be part of the image. It defaults to -r hawt-app/\* when a hawt-app dir is found on the build directory, otherwise jar files only will be included (\*.jar).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_COPY_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the directory where the application resides. All paths in your application are relative to this directory. By default it is the same directory where this startup script resides.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"directory holding the Java jar files as well an optional classpath file which holds the classpath. Either as a single line classpath (colon separated) or with jar files listed line-by-line. If not set JAVA_LIB_DIR is the same as JAVA_APP_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_LIB_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"options to add when calling java\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_OPTIONS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"a number \\\\\\\\u003e= 7. If the version is set then only options suitable for this version are used. When set to 7 options known only to Java \\\\\\\\u003e 8 will be removed. For versions \\\\\\\\u003e= 10 no explicit memory limit is calculated since Java \\\\\\\\u003e= 10 has support for container limits.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAJOR_VERSION\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xmx option is given in JAVA_OPTIONS. This is used to calculate a default maximal Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xmx is set to a ratio of the container available memory as set here. The default is 25 when the maximum amount of memory available to the container is below 300M, 50 otherwise, which means in that case that 50% of the available memory is used as an upper boundary. You can skip this mechanism by setting this value to 0 in which case no -Xmx option is added.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xms option is given in JAVA_OPTIONS. This is used to calculate a default initial Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xms is set to a ratio of the container available memory as set here. By default this value is not set.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_INIT_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"restrict manually the number of cores available which is used for calculating certain defaults like the number of garbage collector threads. If set to 0 no base JVM tuning based on the number of cores is performed.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_CORE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"set this to get some diagnostics information to standard out when things are happening\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DIAGNOSTICS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"main class to use as argument for java. When this environment variable is given, all jar files in $JAVA_APP_DIR are added to the classpath as well as $JAVA_LIB_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAIN_CLASS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"A jar file with an appropriate manifest so that it can be started with java -jar if no $JAVA_MAIN_CLASS is set. In all cases this jar file is added to the classpath, too.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_JAR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Name to use for the process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_NAME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the classpath to use. If not given, the startup script checks for a file ${JAVA_APP_DIR}/classpath and use its content literally as classpath. If this file doesn't exists all jars in the app dir are added (classes:${JAVA_APP_DIR}/\*).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_CLASSPATH\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set remote debugging will be switched on\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set enables suspend mode in remote debugging\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_SUSPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Port used for remote debugging. Default: 5005\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_PORT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the http.proxyHost and http.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the https.proxyHost and https.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The list of hosts that should be reached directly, bypassing the proxy, that translates into the http.nonProxyHosts system property.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NO_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/java.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.2\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"java\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Nodejs \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Node.js \\u662f\\u57fa\\u4e8e Chrome \\u7684 JavaScript \\u8fd0\\u884c\\u65f6\\u6784\\u5efa\\u7684\\u5e73\\u53f0\\uff0c\\u53ef\\u8f7b\\u677e\\u6784\\u5efa\\u5feb\\u901f\\uff0c\\u53ef\\u6269\\u5c55\\u7684\\u7f51\\u7edc\\u5e94\\u7528\\u7a0b\\u5e8f\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-nodejs-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"nodejs\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"nodejs\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-6-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-4-centos7:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"NodeJS runtime mode (default: \\\\\\\\\\\\\\"production\\\\\\\\\\\\\\")\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NODE_ENV\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"When set to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\", nodemon will be used to automatically reload the server while you work (default: \\\\\\\\\\\\\\"false\\\\\\\\\\\\\\"). Setting DEV_MODE to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\" will change the NODE_ENV default to \\\\\\\\\\\\\\"development\\\\\\\\\\\\\\" (if not explicitly set).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DEV_MODE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Select an alternate / custom runtime mode, defined in your package.json file's scripts section (default: npm run \\\\\\\\\\\\\\"start\\\\\\\\\\\\\\"). These user-defined run-scripts are unavailable while DEV_MODE is in use.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_RUN\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use a custom NPM registry mirror to download packages during the build process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_MIRROR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to use \\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" get dependencies\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ENABLED\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"\\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" args\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/nodejs.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"nodejs\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Python \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Python \\u662f\\u4e00\\u79cd\\u6613\\u4e8e\\u5b66\\u4e60\\uff0c\\u529f\\u80fd\\u5f3a\\u5927\\u7684\\u7f16\\u7a0b\\u8bed\\u8a00\\u3002 \\u5b83\\u5177\\u6709\\u9ad8\\u6548\\u7684\\u9ad8\\u7ea7\\u6570\\u636e\\u7ed3\\u6784\\u548c\\u7b80\\u5355\\u4f46\\u6709\\u6548\\u7684\\u9762\\u5411\\u5bf9\\u8c61\\u7f16\\u7a0b\\u65b9\\u6cd5\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Python available as container is a base platform for building and running various Python applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-python-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"python\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"python\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-36-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-35-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-34-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-27-centos7:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/python-36-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Python available as container is a base platform for building and running various Python applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.\\\\\\\\nThis container image includes an npm utility, so users can use it to install JavaScript modules for their web applications. There is no guarantee for any specific npm or nodejs version, that is included in the image; those versions can be changed anytime and the nodejs itself is included just to make the npm work.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application from a script file. This should be a path to a script file (defaults to app.sh unless set to null) that will be run to start the application.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_SCRIPT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application from a Python script. This should be a path to a Python file (defaults to app.py unless set to null) that will be passed to the Python interpreter to start the application.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_FILE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application with Gunicorn, as documented here. This variable specifies a WSGI callable with the pattern MODULE_NAME:VARIABLE_NAME, where MODULE_NAME is the full dotted path of a module, and VARIABLE_NAME refers to a WSGI callable inside the specified module. Gunicorn will look for a WSGI callable named application if not specified.\\\\\\\\nIf APP_MODULE is not provided, the run script will look for a wsgi.py file in your project and use it if it exists.\\\\\\\\nIf using setup.py for installing the application, the MODULE_NAME part can be read from there. \\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_MODULE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This variable can be used to specify a sub-directory in which the application to be run is contained. The directory pointed to by this variable needs to contain wsgi.py (for Gunicorn) or manage.py (for Django).\\\\\\\\nIf APP_HOME is not provided, the assemble and run scripts will use the application's root directory.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_HOME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to a valid Python file with a Gunicorn configuration file.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_CONFIG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to inhibit the execution of 'manage.py collectstatic' during the build. This only affects Django projects.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DISABLE_COLLECTSTATIC\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this to a non-empty value to skip processing of setup.py script if you use -e . in requirements.txt to trigger its processing or you don't want your application to be installed into site-packages directory.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DISABLE_SETUP_PY_PROCESSING\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to use Pipenv, the higher-level Python packaging tool, to manage dependencies of the application. This should be used only if your project contains properly formated Pipfile and Pipfile.lock.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ENABLE_PIPENV\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to use a custom index URL or mirror to download required packages during build process. This only affects packages listed in requirements.txt. Pipenv ignores this variable.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"PIP_INDEX_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to have the 'pip' program and related python packages (setuptools and wheel) be upgraded to the most recent version before any Python packages are installed. If not set it will use whatever the default version is included by the platform for the Python version being used..\\\\\\",\\\\\\"key\\\\\\":\\\\\\"UPGRADE_PIP_TO_LATEST\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this to change the default setting for the number of workers. By default, this is set to the number of available cores times 2, capped at 12.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"WEB_CONCURRENCY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/python.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"python\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z\\nError from server (InternalError): error when applying patch:\\n{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Tomcat \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\uff0c\\u901a\\u8fc7\\u8be5\\u6a21\\u7248\\u53ef\\u6784\\u5efa\\u51fa\\u76f4\\u63a5\\u8fd0\\u884c\\u7684\\u5e94\\u7528\\u955c\\u50cf\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly with Tomcat application server.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-java-container/tree/master/tomcat/images/\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"war\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"tomcat\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"java\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/tomcat85-java11-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/tomcat85-java11-runtime:v3.2.0\\\\\\"},{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-runtime:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly with Tomcat application server.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling Maven, replacing the default package hawt-app:build -DskipTests -e. Please be sure to run the hawt-app:build goal (when not already bound to the package execution phase), otherwise the startup scripts won't work.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Additional Maven arguments, useful for temporary adding arguments like -X or -am -pl .\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS_APPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"With Repositories you specify from which locations you want to download certain artifacts, such as dependencies and maven-plugins.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_MIRROR_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set then the Maven repository is removed after the artifact is built. This is useful for keeping the created application image small, but prevents incremental builds. The default is false\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_CLEAR_REPO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to target/ where the jar files are created for multi module builds. These are added to ${MAVEN_ARGS}\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when copying artifacts from the output dir to the application dir. Useful to specify which artifacts will be part of the image. It defaults to -r hawt-app/\* when a hawt-app dir is found on the build directory, otherwise jar files only will be included (\*.jar).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_COPY_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the directory where the application resides. All paths in your application are relative to this directory. By default it is the same directory where this startup script resides.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"directory holding the Java jar files as well an optional classpath file which holds the classpath. Either as a single line classpath (colon separated) or with jar files listed line-by-line. If not set JAVA_LIB_DIR is the same as JAVA_APP_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_LIB_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"options to add when calling java\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_OPTIONS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"a number \\\\\\\\u003e= 7. If the version is set then only options suitable for this version are used. When set to 7 options known only to Java \\\\\\\\u003e 8 will be removed. For versions \\\\\\\\u003e= 10 no explicit memory limit is calculated since Java \\\\\\\\u003e= 10 has support for container limits.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAJOR_VERSION\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xmx option is given in JAVA_OPTIONS. This is used to calculate a default maximal Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xmx is set to a ratio of the container available memory as set here. The default is 25 when the maximum amount of memory available to the container is below 300M, 50 otherwise, which means in that case that 50% of the available memory is used as an upper boundary. You can skip this mechanism by setting this value to 0 in which case no -Xmx option is added.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xms option is given in JAVA_OPTIONS. This is used to calculate a default initial Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xms is set to a ratio of the container available memory as set here. By default this value is not set.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_INIT_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"restrict manually the number of cores available which is used for calculating certain defaults like the number of garbage collector threads. If set to 0 no base JVM tuning based on the number of cores is performed.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_CORE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"set this to get some diagnostics information to standard out when things are happening\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DIAGNOSTICS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"main class to use as argument for java. When this environment variable is given, all jar files in $JAVA_APP_DIR are added to the classpath as well as $JAVA_LIB_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAIN_CLASS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"A jar file with an appropriate manifest so that it can be started with java -jar if no $JAVA_MAIN_CLASS is set. In all cases this jar file is added to the classpath, too.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_JAR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Name to use for the process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_NAME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the classpath to use. If not given, the startup script checks for a file ${JAVA_APP_DIR}/classpath and use its content literally as classpath. If this file doesn't exists all jars in the app dir are added (classes:${JAVA_APP_DIR}/\*).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_CLASSPATH\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set remote debugging will be switched on\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set enables suspend mode in remote debugging\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_SUSPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Port used for remote debugging. Default: 5005\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_PORT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the http.proxyHost and http.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the https.proxyHost and https.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The list of hosts that should be reached directly, bypassing the proxy, that translates into the http.nonProxyHosts system property.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NO_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/tomcat.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.2\\\\\\"}}\\\\n\\"}}}\\nto:\\nResource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"\\nName: \\"tomcat\\", Namespace: \\"\\"\\nfor: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z",
      
        "stderr_lines": [
      
          "Error: UPGRADE FAILED: cannot patch \\"binary\\" with kind S2iBuilderTemplate: Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z",
      
          "Warning: resource s2ibuildertemplates/binary is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.",
      
          "Warning: resource s2ibuildertemplates/java is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.",
      
          "Warning: resource s2ibuildertemplates/nodejs is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.",
      
          "Warning: resource s2ibuildertemplates/python is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.",
      
          "Warning: resource s2ibuildertemplates/tomcat is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.",
      
          "Error from server (InternalError): error when applying patch:",
      
          "{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"\\u4e8c\\u8fdb\\u5236\\u6587\\u4ef6\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-binary-container\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"binary\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"binary\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/s2i-binary:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for binary build\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling binary,\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/binary.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}",
      
          "to:",
      
          "Resource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"",
      
          "Name: \\"binary\\", Namespace: \\"\\"",
      
          "for: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z",
      
          "Error from server (InternalError): error when applying patch:",
      
          "{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Java \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002\\u901a\\u8fc7\\u8be5\\u6a21\\u7248\\u53ef\\u6784\\u5efa\\u51fa\\u76f4\\u63a5\\u8fd0\\u884c\\u7684\\u5e94\\u7528\\u955c\\u50cf\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\").\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-java-container/blob/master/java/images\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"jar\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"java\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"java\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-8-runtime:v3.2.0\\\\\\"},{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/java-11-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/java-11-runtime:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/java-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly without any further application server.It's suited ideally for microservices with a flat classpath (including \\\\\\\\\\\\\\"far jars\\\\\\\\\\\\\\")\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling Maven, replacing the default package hawt-app:build -DskipTests -e. Please be sure to run the hawt-app:build goal (when not already bound to the package execution phase), otherwise the startup scripts won't work.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Additional Maven arguments, useful for temporary adding arguments like -X or -am -pl .\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS_APPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"With Repositories you specify from which locations you want to download certain artifacts, such as dependencies and maven-plugins.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_MIRROR_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set then the Maven repository is removed after the artifact is built. This is useful for keeping the created application image small, but prevents incremental builds. The default is false\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_CLEAR_REPO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to target/ where the jar files are created for multi module builds. These are added to ${MAVEN_ARGS}\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when copying artifacts from the output dir to the application dir. Useful to specify which artifacts will be part of the image. It defaults to -r hawt-app/\* when a hawt-app dir is found on the build directory, otherwise jar files only will be included (\*.jar).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_COPY_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the directory where the application resides. All paths in your application are relative to this directory. By default it is the same directory where this startup script resides.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"directory holding the Java jar files as well an optional classpath file which holds the classpath. Either as a single line classpath (colon separated) or with jar files listed line-by-line. If not set JAVA_LIB_DIR is the same as JAVA_APP_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_LIB_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"options to add when calling java\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_OPTIONS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"a number \\\\\\\\u003e= 7. If the version is set then only options suitable for this version are used. When set to 7 options known only to Java \\\\\\\\u003e 8 will be removed. For versions \\\\\\\\u003e= 10 no explicit memory limit is calculated since Java \\\\\\\\u003e= 10 has support for container limits.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAJOR_VERSION\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xmx option is given in JAVA_OPTIONS. This is used to calculate a default maximal Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xmx is set to a ratio of the container available memory as set here. The default is 25 when the maximum amount of memory available to the container is below 300M, 50 otherwise, which means in that case that 50% of the available memory is used as an upper boundary. You can skip this mechanism by setting this value to 0 in which case no -Xmx option is added.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xms option is given in JAVA_OPTIONS. This is used to calculate a default initial Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xms is set to a ratio of the container available memory as set here. By default this value is not set.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_INIT_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"restrict manually the number of cores available which is used for calculating certain defaults like the number of garbage collector threads. If set to 0 no base JVM tuning based on the number of cores is performed.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_CORE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"set this to get some diagnostics information to standard out when things are happening\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DIAGNOSTICS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"main class to use as argument for java. When this environment variable is given, all jar files in $JAVA_APP_DIR are added to the classpath as well as $JAVA_LIB_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAIN_CLASS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"A jar file with an appropriate manifest so that it can be started with java -jar if no $JAVA_MAIN_CLASS is set. In all cases this jar file is added to the classpath, too.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_JAR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Name to use for the process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_NAME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the classpath to use. If not given, the startup script checks for a file ${JAVA_APP_DIR}/classpath and use its content literally as classpath. If this file doesn't exists all jars in the app dir are added (classes:${JAVA_APP_DIR}/\*).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_CLASSPATH\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set remote debugging will be switched on\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set enables suspend mode in remote debugging\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_SUSPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Port used for remote debugging. Default: 5005\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_PORT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the http.proxyHost and http.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the https.proxyHost and https.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The list of hosts that should be reached directly, bypassing the proxy, that translates into the http.nonProxyHosts system property.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NO_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/java.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.2\\\\\\"}}\\\\n\\"}}}",
      
          "to:",
      
          "Resource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"",
      
          "Name: \\"java\\", Namespace: \\"\\"",
      
          "for: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:41Z is after 2024-02-14T06:08:48Z",
      
          "Error from server (InternalError): error when applying patch:",
      
          "{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Nodejs \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Node.js \\u662f\\u57fa\\u4e8e Chrome \\u7684 JavaScript \\u8fd0\\u884c\\u65f6\\u6784\\u5efa\\u7684\\u5e73\\u53f0\\uff0c\\u53ef\\u8f7b\\u677e\\u6784\\u5efa\\u5feb\\u901f\\uff0c\\u53ef\\u6269\\u5c55\\u7684\\u7f51\\u7edc\\u5e94\\u7528\\u7a0b\\u5e8f\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-nodejs-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"nodejs\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"nodejs\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-6-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/nodejs-4-centos7:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/nodejs-8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Node.js available as container is a base platform for building and running various Node.js applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"NodeJS runtime mode (default: \\\\\\\\\\\\\\"production\\\\\\\\\\\\\\")\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NODE_ENV\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"When set to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\", nodemon will be used to automatically reload the server while you work (default: \\\\\\\\\\\\\\"false\\\\\\\\\\\\\\"). Setting DEV_MODE to \\\\\\\\\\\\\\"true\\\\\\\\\\\\\\" will change the NODE_ENV default to \\\\\\\\\\\\\\"development\\\\\\\\\\\\\\" (if not explicitly set).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DEV_MODE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Select an alternate / custom runtime mode, defined in your package.json file's scripts section (default: npm run \\\\\\\\\\\\\\"start\\\\\\\\\\\\\\"). These user-defined run-scripts are unavailable while DEV_MODE is in use.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_RUN\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use an npm proxy during assembly\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Use a custom NPM registry mirror to download packages during the build process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NPM_MIRROR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to use \\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" get dependencies\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ENABLED\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"\\\\\\\\\\\\\\"yarn install\\\\\\\\\\\\\\" args\\\\\\",\\\\\\"key\\\\\\":\\\\\\"YARN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/nodejs.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}",
      
          "to:",
      
          "Resource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"",
      
          "Name: \\"nodejs\\", Namespace: \\"\\"",
      
          "for: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z",
      
          "Error from server (InternalError): error when applying patch:",
      
          "{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Python \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\u3002Python \\u662f\\u4e00\\u79cd\\u6613\\u4e8e\\u5b66\\u4e60\\uff0c\\u529f\\u80fd\\u5f3a\\u5927\\u7684\\u7f16\\u7a0b\\u8bed\\u8a00\\u3002 \\u5b83\\u5177\\u6709\\u9ad8\\u6548\\u7684\\u9ad8\\u7ea7\\u6570\\u636e\\u7ed3\\u6784\\u548c\\u7b80\\u5355\\u4f46\\u6709\\u6548\\u7684\\u9762\\u5411\\u5bf9\\u8c61\\u7f16\\u7a0b\\u65b9\\u6cd5\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"Python available as container is a base platform for building and running various Python applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-python-container\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"python\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"python\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-36-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-35-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-34-centos7:v3.2.0\\\\\\"},{\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/python-27-centos7:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/python-36-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Python available as container is a base platform for building and running various Python applications and frameworks. Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python's elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.\\\\\\\\nThis container image includes an npm utility, so users can use it to install JavaScript modules for their web applications. There is no guarantee for any specific npm or nodejs version, that is included in the image; those versions can be changed anytime and the nodejs itself is included just to make the npm work.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application from a script file. This should be a path to a script file (defaults to app.sh unless set to null) that will be run to start the application.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_SCRIPT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application from a Python script. This should be a path to a Python file (defaults to app.py unless set to null) that will be passed to the Python interpreter to start the application.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_FILE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Used to run the application with Gunicorn, as documented here. This variable specifies a WSGI callable with the pattern MODULE_NAME:VARIABLE_NAME, where MODULE_NAME is the full dotted path of a module, and VARIABLE_NAME refers to a WSGI callable inside the specified module. Gunicorn will look for a WSGI callable named application if not specified.\\\\\\\\nIf APP_MODULE is not provided, the run script will look for a wsgi.py file in your project and use it if it exists.\\\\\\\\nIf using setup.py for installing the application, the MODULE_NAME part can be read from there. \\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_MODULE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This variable can be used to specify a sub-directory in which the application to be run is contained. The directory pointed to by this variable needs to contain wsgi.py (for Gunicorn) or manage.py (for Django).\\\\\\\\nIf APP_HOME is not provided, the assemble and run scripts will use the application's root directory.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_HOME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to a valid Python file with a Gunicorn configuration file.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"APP_CONFIG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to inhibit the execution of 'manage.py collectstatic' during the build. This only affects Django projects.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DISABLE_COLLECTSTATIC\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this to a non-empty value to skip processing of setup.py script if you use -e . in requirements.txt to trigger its processing or you don't want your application to be installed into site-packages directory.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"DISABLE_SETUP_PY_PROCESSING\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to use Pipenv, the higher-level Python packaging tool, to manage dependencies of the application. This should be used only if your project contains properly formated Pipfile and Pipfile.lock.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ENABLE_PIPENV\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to use a custom index URL or mirror to download required packages during build process. This only affects packages listed in requirements.txt. Pipenv ignores this variable.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"PIP_INDEX_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this variable to a non-empty value to have the 'pip' program and related python packages (setuptools and wheel) be upgraded to the most recent version before any Python packages are installed. If not set it will use whatever the default version is included by the platform for the Python version being used..\\\\\\",\\\\\\"key\\\\\\":\\\\\\"UPGRADE_PIP_TO_LATEST\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Set this to change the default setting for the number of workers. By default, this is set to the number of available cores times 2, capped at 12.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"WEB_CONCURRENCY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/python.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.1\\\\\\"}}\\\\n\\"}}}",
      
          "to:",
      
          "Resource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"",
      
          "Name: \\"python\\", Namespace: \\"\\"",
      
          "for: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z",
      
          "Error from server (InternalError): error when applying patch:",
      
          "{\\"metadata\\":{\\"annotations\\":{\\"kubectl.kubernetes.io/last-applied-configuration\\":\\"{\\\\\\"apiVersion\\\\\\":\\\\\\"devops.kubesphere.io/v1alpha1\\\\\\",\\\\\\"kind\\\\\\":\\\\\\"S2iBuilderTemplate\\\\\\",\\\\\\"metadata\\\\\\":{\\\\\\"annotations\\\\\\":{\\\\\\"descriptionCN\\\\\\":\\\\\\"Tomcat \\u5e94\\u7528\\u7684\\u6784\\u5efa\\u5668\\u6a21\\u7248\\uff0c\\u901a\\u8fc7\\u8be5\\u6a21\\u7248\\u53ef\\u6784\\u5efa\\u51fa\\u76f4\\u63a5\\u8fd0\\u884c\\u7684\\u5e94\\u7528\\u955c\\u50cf\\u3002\\\\\\",\\\\\\"descriptionEN\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly with Tomcat application server.\\\\\\",\\\\\\"devops.kubesphere.io/s2i-template-url\\\\\\":\\\\\\"https://github.com/kubesphere/s2i-java-container/tree/master/tomcat/images/\\\\\\",\\\\\\"helm.sh/hook\\\\\\":\\\\\\"pre-install\\\\\\"},\\\\\\"labels\\\\\\":{\\\\\\"binary-type.kubesphere.io\\\\\\":\\\\\\"war\\\\\\",\\\\\\"builder-type.kubesphere.io/b2i\\\\\\":\\\\\\"b2i\\\\\\",\\\\\\"builder-type.kubesphere.io/s2i\\\\\\":\\\\\\"s2i\\\\\\",\\\\\\"controller-tools.k8s.io\\\\\\":\\\\\\"1.0\\\\\\"},\\\\\\"name\\\\\\":\\\\\\"tomcat\\\\\\"},\\\\\\"spec\\\\\\":{\\\\\\"codeFramework\\\\\\":\\\\\\"java\\\\\\",\\\\\\"containerInfo\\\\\\":[{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/tomcat85-java11-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/tomcat85-java11-runtime:v3.2.0\\\\\\"},{\\\\\\"buildVolumes\\\\\\":[\\\\\\"s2i_java_cache:/tmp/artifacts\\\\\\"],\\\\\\"builderImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-centos7:v3.2.0\\\\\\",\\\\\\"runtimeArtifacts\\\\\\":[{\\\\\\"source\\\\\\":\\\\\\"/deployments\\\\\\"}],\\\\\\"runtimeImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-runtime:v3.2.0\\\\\\"}],\\\\\\"defaultBaseImage\\\\\\":\\\\\\"kubesphere/tomcat85-java8-centos7:v3.2.0\\\\\\",\\\\\\"description\\\\\\":\\\\\\"This is a builder template for Java builds whose result can be run directly with Tomcat application server.\\\\\\",\\\\\\"environment\\\\\\":[{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when calling Maven, replacing the default package hawt-app:build -DskipTests -e. Please be sure to run the hawt-app:build goal (when not already bound to the package execution phase), otherwise the startup scripts won't work.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Additional Maven arguments, useful for temporary adding arguments like -X or -am -pl .\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_ARGS_APPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"With Repositories you specify from which locations you want to download certain artifacts, such as dependencies and maven-plugins.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_MIRROR_URL\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set then the Maven repository is removed after the artifact is built. This is useful for keeping the created application image small, but prevents incremental builds. The default is false\\\\\\",\\\\\\"key\\\\\\":\\\\\\"MAVEN_CLEAR_REPO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"boolean\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Path to target/ where the jar files are created for multi module builds. These are added to ${MAVEN_ARGS}\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Arguments to use when copying artifacts from the output dir to the application dir. Useful to specify which artifacts will be part of the image. It defaults to -r hawt-app/\* when a hawt-app dir is found on the build directory, otherwise jar files only will be included (\*.jar).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"ARTIFACT_COPY_ARGS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the directory where the application resides. All paths in your application are relative to this directory. By default it is the same directory where this startup script resides.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"directory holding the Java jar files as well an optional classpath file which holds the classpath. Either as a single line classpath (colon separated) or with jar files listed line-by-line. If not set JAVA_LIB_DIR is the same as JAVA_APP_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_LIB_DIR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"options to add when calling java\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_OPTIONS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"a number \\\\\\\\u003e= 7. If the version is set then only options suitable for this version are used. When set to 7 options known only to Java \\\\\\\\u003e 8 will be removed. For versions \\\\\\\\u003e= 10 no explicit memory limit is calculated since Java \\\\\\\\u003e= 10 has support for container limits.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAJOR_VERSION\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xmx option is given in JAVA_OPTIONS. This is used to calculate a default maximal Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xmx is set to a ratio of the container available memory as set here. The default is 25 when the maximum amount of memory available to the container is below 300M, 50 otherwise, which means in that case that 50% of the available memory is used as an upper boundary. You can skip this mechanism by setting this value to 0 in which case no -Xmx option is added.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"is used when no -Xms option is given in JAVA_OPTIONS. This is used to calculate a default initial Heap Memory based on a containers restriction. If used in a Docker container without any memory constraints for the container then this option has no effect. If there is a memory constraint then -Xms is set to a ratio of the container available memory as set here. By default this value is not set.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_INIT_MEM_RATIO\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"restrict manually the number of cores available which is used for calculating certain defaults like the number of garbage collector threads. If set to 0 no base JVM tuning based on the number of cores is performed.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAX_CORE\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"set this to get some diagnostics information to standard out when things are happening\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DIAGNOSTICS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"main class to use as argument for java. When this environment variable is given, all jar files in $JAVA_APP_DIR are added to the classpath as well as $JAVA_LIB_DIR.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_MAIN_CLASS\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"A jar file with an appropriate manifest so that it can be started with java -jar if no $JAVA_MAIN_CLASS is set. In all cases this jar file is added to the classpath, too.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_JAR\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Name to use for the process\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_APP_NAME\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"the classpath to use. If not given, the startup script checks for a file ${JAVA_APP_DIR}/classpath and use its content literally as classpath. If this file doesn't exists all jars in the app dir are added (classes:${JAVA_APP_DIR}/\*).\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_CLASSPATH\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set remote debugging will be switched on\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"If set enables suspend mode in remote debugging\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_SUSPEND\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"Port used for remote debugging. Default: 5005\\\\\\",\\\\\\"key\\\\\\":\\\\\\"JAVA_DEBUG_PORT\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the http.proxyHost and http.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTP_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The URL of the proxy server that translates into the https.proxyHost and https.proxyPort system properties.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"HTTPS_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"},{\\\\\\"defaultValue\\\\\\":\\\\\\"\\\\\\",\\\\\\"description\\\\\\":\\\\\\"The list of hosts that should be reached directly, bypassing the proxy, that translates into the http.nonProxyHosts system property.\\\\\\",\\\\\\"key\\\\\\":\\\\\\"NO_PROXY\\\\\\",\\\\\\"required\\\\\\":false,\\\\\\"type\\\\\\":\\\\\\"string\\\\\\"}],\\\\\\"iconPath\\\\\\":\\\\\\"assets/tomcat.png\\\\\\",\\\\\\"version\\\\\\":\\\\\\"0.0.2\\\\\\"}}\\\\n\\"}}}",
      
          "to:",
      
          "Resource: \\"devops.kubesphere.io/v1alpha1, Resource=s2ibuildertemplates\\", GroupVersionKind: \\"devops.kubesphere.io/v1alpha1, Kind=S2iBuilderTemplate\\"",
      
          "Name: \\"tomcat\\", Namespace: \\"\\"",
      
          "for: \\"s2i-templatestemplates.yaml\\": Internal error occurred: failed calling webhook \\"s2ibuildertemplate.kb.io\\": failed to call webhook: Post \\"https://webhook-server-service.kubesphere-devops-system.svc:443/validate-devops-kubesphere-io-v1alpha1-s2ibuildertemplate?timeout=10s\\": x509: certificate has expired or is not yet valid: current time 2024-02-19T03:13:42Z is after 2024-02-14T06:08:48Z"
      
        ],
      
        "stdout": "ks-devops/Chart.yaml\\nks-devops/values.yaml\\nks-devops/templates/NOTES.txt\\nks-devops/templates/_helpers.tpl\\nks-devops/templates/cluster-step-templates.yaml\\nks-devops/templates/cluster-template-ci.yaml\\nks-devops/templates/cluster-template-cicd.yaml\\nks-devops/templates/cluster-template-golang.yaml\\nks-devops/templates/cluster-template-maven.yaml\\nks-devops/templates/cluster-template-nodejs.yaml\\nks-devops/templates/config.yaml\\nks-devops/templates/cronjob-gc.yaml\\nks-devops/templates/deployment-apiserver.yaml\\nks-devops/templates/deployment-controller.yaml\\nks-devops/templates/jenkins-agent-config.yaml\\nks-devops/templates/service-apiserver.yaml\\nks-devops/templates/serviceaccount.yaml\\nks-devops/templates/tests/test-connection.yaml\\nks-devops/.helmignore\\nks-devops/README.md\\nks-devops/crds/devops.kubesphere.io_clustersteptemplates.yaml\\nks-devops/crds/devops.kubesphere.io_clustertemplates.yaml\\nks-devops/crds/devops.kubesphere.io_devopsprojects.yaml\\nks-devops/crds/devops.kubesphere.io_gitrepositories.yaml\\nks-devops/crds/devops.kubesphere.io_pipelineruns.yaml\\nks-devops/crds/devops.kubesphere.io_pipelines.yaml\\nks-devops/crds/devops.kubesphere.io_templates.yaml\\nks-devops/crds/gitops.kubesphere.io_applications.yaml\\nks-devops/charts/jenkins/Chart.yaml\\nks-devops/charts/jenkins/values.yaml\\nks-devops/charts/jenkins/templates/NOTES.txt\\nks-devops/charts/jenkins/templates/_helpers.tpl\\nks-devops/charts/jenkins/templates/config.yaml\\nks-devops/charts/jenkins/templates/home-pvc.yaml\\nks-devops/charts/jenkins/templates/jenkins-agent-config.yaml\\nks-devops/charts/jenkins/templates/jenkins-agent-svc.yaml\\nks-devops/charts/jenkins/templates/jenkins-casc-config.yml\\nks-devops/charts/jenkins/templates/jenkins-master-deployment.yaml\\nks-devops/charts/jenkins/templates/jenkins-master-networkpolicy.yaml\\nks-devops/charts/jenkins/templates/jenkins-master-statefulset.yaml\\nks-devops/charts/jenkins/templates/jenkins-master-svc.yaml\\nks-devops/charts/jenkins/templates/jenkins-test.yaml\\nks-devops/charts/jenkins/templates/jenkins-worker-limitrange.yaml\\nks-devops/charts/jenkins/templates/jenkins-worker-namespace.yaml\\nks-devops/charts/jenkins/templates/jenkins-worker-namespacequota.yaml\\nks-devops/charts/jenkins/templates/jenkins-worker-rbac.yaml\\nks-devops/charts/jenkins/templates/jobs.yaml\\nks-devops/charts/jenkins/templates/prometheus-prometheusrule.yaml\\nks-devops/charts/jenkins/templates/prometheus-servicemonitor.yaml\\nks-devops/charts/jenkins/templates/rbac.yaml\\nks-devops/charts/jenkins/templates/secret.yaml\\nks-devops/charts/jenkins/templates/service-account.yaml\\nks-devops/charts/jenkins/.helmignore\\nks-devops/charts/jenkins/README.md\\nks-devops/charts/s2i/Chart.yaml\\nks-devops/charts/s2i/values.yaml\\nks-devops/charts/s2i/templates/NOTES.txt\\nks-devops/charts/s2i/templates/_helpers.tpl\\nks-devops/charts/s2i/templates/binary.yaml\\nks-devops/charts/s2i/templates/java.yaml\\nks-devops/charts/s2i/templates/nodejs.yaml\\nks-devops/charts/s2i/templates/operator.yaml\\nks-devops/charts/s2i/templates/prometheus-servicemonitor.yaml\\nks-devops/charts/s2i/templates/python.yaml\\nks-devops/charts/s2i/templates/tests/.gitkeep\\nks-devops/charts/s2i/templates/tomcat.yaml\\nks-devops/charts/s2i/.helmignore\\nks-devops/charts/s2i/README.md\\nks-devops/charts/s2i/crds/devops.kubesphere.io_s2ibinaries.yaml\\nks-devops/charts/s2i/crds/devops.kubesphere.io_s2ibuilders.yaml\\nks-devops/charts/s2i/crds/devops.kubesphere.io_s2ibuildertemplates.yaml\\nks-devops/charts/s2i/crds/devops.kubesphere.io_s2iruns.yaml\\ncustomresourcedefinition.apiextensions.k8s.io/clustersteptemplates.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/clustertemplates.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/devopsprojects.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/gitrepositories.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/pipelineruns.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/pipelines.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/templates.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/applications.gitops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/s2ibinaries.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/s2ibuilders.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/s2ibuildertemplates.devops.kubesphere.io configured\\ncustomresourcedefinition.apiextensions.k8s.io/s2iruns.devops.kubesphere.io configured",
      
        "stdout_lines": [
      
          "ks-devops/Chart.yaml",
      
          "ks-devops/values.yaml",
      
          "ks-devops/templates/NOTES.txt",
      
          "ks-devops/templates/_helpers.tpl",
      
          "ks-devops/templates/cluster-step-templates.yaml",
      
          "ks-devops/templates/cluster-template-ci.yaml",
      
          "ks-devops/templates/cluster-template-cicd.yaml",
      
          "ks-devops/templates/cluster-template-golang.yaml",
      
          "ks-devops/templates/cluster-template-maven.yaml",
      
          "ks-devops/templates/cluster-template-nodejs.yaml",
      
          "ks-devops/templates/config.yaml",
      
          "ks-devops/templates/cronjob-gc.yaml",
      
          "ks-devops/templates/deployment-apiserver.yaml",
      
          "ks-devops/templates/deployment-controller.yaml",
      
          "ks-devops/templates/jenkins-agent-config.yaml",
      
          "ks-devops/templates/service-apiserver.yaml",
      
          "ks-devops/templates/serviceaccount.yaml",
      
          "ks-devops/templates/tests/test-connection.yaml",
      
          "ks-devops/.helmignore",
      
          "ks-devops/README.md",
      
          "ks-devops/crds/devops.kubesphere.io_clustersteptemplates.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_clustertemplates.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_devopsprojects.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_gitrepositories.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_pipelineruns.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_pipelines.yaml",
      
          "ks-devops/crds/devops.kubesphere.io_templates.yaml",
      
          "ks-devops/crds/gitops.kubesphere.io_applications.yaml",
      
          "ks-devops/charts/jenkins/Chart.yaml",
      
          "ks-devops/charts/jenkins/values.yaml",
      
          "ks-devops/charts/jenkins/templates/NOTES.txt",
      
          "ks-devops/charts/jenkins/templates/_helpers.tpl",
      
          "ks-devops/charts/jenkins/templates/config.yaml",
      
          "ks-devops/charts/jenkins/templates/home-pvc.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-agent-config.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-agent-svc.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-casc-config.yml",
      
          "ks-devops/charts/jenkins/templates/jenkins-master-deployment.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-master-networkpolicy.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-master-statefulset.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-master-svc.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-test.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-worker-limitrange.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-worker-namespace.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-worker-namespacequota.yaml",
      
          "ks-devops/charts/jenkins/templates/jenkins-worker-rbac.yaml",
      
          "ks-devops/charts/jenkins/templates/jobs.yaml",
        5 天 后

        devops-argocd-dex-server-84fff59566-hsrzb 0/1 CrashLoopBackOff 11 (3m35s ago) 28m

        dex-server一直重启

        系统信息

        虚拟机:CentOS Linux release 7.6.1810

        kubectl v1.26.5

        crictl version v1.24.0

        KubeSphere版本信息

        离线安装。 使用kk安装。

        KubeSphere v3.4.1

        [root@master ~]# kubectl describe pod devops-argocd-dex-server-84fff59566-hsrzb -n argocd

        Name: devops-argocd-dex-server-84fff59566-hsrzb

        Namespace: argocd

        Priority: 0

        Service Account: argocd-dex-server

        Node: node1/192.168.66.131

        Start Time: Mon, 26 Feb 2024 14:39:53 +0800

        Labels: app.kubernetes.io/component=dex-server

                      app.kubernetes.io/instance=devops
        
                      app.kubernetes.io/managed-by=Helm
        
                      app.kubernetes.io/name=argocd-dex-server
        
                      app.kubernetes.io/part-of=argocd
        
                      app.kubernetes.io/version=v2.30.2
        
                      helm.sh/chart=argo-cd-4.4.0
        
                      pod-template-hash=84fff59566

        Annotations: cni.projectcalico.org/containerID: b14b0527217b803ee9d199e5bc58dca1b876d1848e2d030b60742e28098b35e5

                      cni.projectcalico.org/podIP: 10.233.90.41/32
        
                      cni.projectcalico.org/podIPs: 10.233.90.41/32

        Status: Running

        IP: 10.233.90.41

        IPs:

        IP: 10.233.90.41

        Controlled By: ReplicaSet/devops-argocd-dex-server-84fff59566

        Init Containers:

        copyutil:

        Container ID:  containerd://f9a90db26466e46f8d848e69d3ba4aa8bbc3f37ad303cb8cd182db2d1633d5f5
        
        Image:         registry.opsman.top/kubesphereio/argocd:v2.3.3
        
        Image ID:      registry.opsman.top/kubesphereio/argocd@sha256:5c818399b9f9dbed4b0dbf668f699694b31aceee71ff18ef36fbd0c51c792f91
        
        Port:          <none>
        
        Host Port:     <none>
        
        Command:
        
          cp
        
          -n
        
          /usr/local/bin/argocd
        
          /shared/argocd-dex
        
        State:          Terminated
        
          Reason:       Completed
        
          Exit Code:    0
        
          Started:      Mon, 26 Feb 2024 14:40:03 +0800
        
          Finished:     Mon, 26 Feb 2024 14:40:59 +0800
        
        Ready:          True
        
        Restart Count:  0
        
        Environment:    <none>
        
        Mounts:
        
          /shared from static-files (rw)
        
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zrqfh (ro)

        Containers:

        dex-server:

        Container ID:  containerd://d909f017fb1cb9136d741078aa7d2fefd445e82590baa7b9d9059a272573183a
        
        Image:         registry.opsman.top/kubesphereio/dex:v2.30.2
        
        Image ID:      registry.opsman.top/kubesphereio/dex@sha256:197bd274c49d45a5b87ff2b20bf8e1eaccc72593e375112ac32b43b7fe3da531
        
        Ports:         5556/TCP, 5557/TCP, 5558/TCP
        
        Host Ports:    0/TCP, 0/TCP, 0/TCP
        
        Command:
        
          /shared/argocd-dex
        
          rundex
        
        State:          Running
        
          Started:      Mon, 26 Feb 2024 15:09:40 +0800
        
        Last State:     Terminated
        
          Reason:       Error
        
          Exit Code:    2
        
          Started:      Mon, 26 Feb 2024 15:02:59 +0800
        
          Finished:     Mon, 26 Feb 2024 15:04:37 +0800
        
        Ready:          False
        
        Restart Count:  12
        
        Liveness:       http-get http://:metrics/healthz/live delay=10s timeout=10s period=10s #success=1 #failure=3
        
        Readiness:      http-get http://:metrics/healthz/ready delay=10s timeout=10s period=10s #success=1 #failure=3
        
        Environment:    <none>
        
        Mounts:
        
          /shared from static-files (rw)
        
          /tmp from tmp-dir (rw)
        
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zrqfh (ro)

        Conditions:

        Type Status

        Initialized True

        Ready False

        ContainersReady False

        PodScheduled True

        Volumes:

        tmp-dir:

        Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
        
        Medium:     
        
        SizeLimit:  <unset>

        static-files:

        Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
        
        Medium:     
        
        SizeLimit:  <unset>

        kube-api-access-zrqfh:

        Type:                    Projected (a volume that contains injected data from multiple sources)
        
        TokenExpirationSeconds:  3607
        
        ConfigMapName:           kube-root-ca.crt
        
        ConfigMapOptional:       <nil>
        
        DownwardAPI:             true

        QoS Class: BestEffort

        Node-Selectors: <none>

        Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s

                                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s

        Events:

        Type Reason Age From Message


        Normal Scheduled 30m default-scheduler Successfully assigned argocd/devops-argocd-dex-server-84fff59566-hsrzb to node1

        Normal Pulled 30m kubelet Container image “registry.opsman.top/kubesphereio/argocd:v2.3.3” already present on machine

        Normal Created 30m kubelet Created container copyutil

        Normal Started 30m kubelet Started container copyutil

        Normal Pulled 28m (x2 over 29m) kubelet Container image “registry.opsman.top/kubesphereio/dex:v2.30.2” already present on machine

        Normal Created 28m (x2 over 29m) kubelet Created container dex-server

        Normal Started 28m (x2 over 29m) kubelet Started container dex-server

        Normal Killing 27m (x2 over 28m) kubelet Container dex-server failed liveness probe, will be restarted

        Warning Unhealthy 20m (x22 over 28m) kubelet Liveness probe failed: Get “http://10.233.90.41:5558/healthz/live”: dial tcp 10.233.90.41:5558: connect: connection refused

        Warning BackOff 5m8s (x74 over 25m) kubelet Back-off restarting failed container dex-server in pod devops-argocd-dex-server-84fff59566-hsrzb_argocd(95aff335-303c-4b4c-890e-98c7107cc655)

        Warning Unhealthy 12s (x57 over 28m) kubelet Readiness probe failed: Get “http://10.233.90.41:5558/healthz/ready”: dial tcp 10.233.90.41:5558: connect: connection refused

        kubectl logs -f devops-argocd-dex-server-84fff59566-hsrzb -n argocd

        Defaulted container “dex-server” out of: dex-server, copyutil (init)

        time=“2024-02-26T06:56:15Z” level=info msg=“Starting configmap/secret informers”

        time=“2024-02-26T06:56:15Z” level=info msg=“Configmap/secret informer synced”

        time=“2024-02-26T06:56:15Z” level=info msg=“0xc00047c4e0 subscribed to settings updates”

        time=“2024-02-26T06:56:15Z” level=info msg=“dex is not configured”

        dex-server一直重启是怎么解决的

          wang123git dex-server 频繁重启可以试下去掉 Deployment 的 readinessProbe 和 livenessProbe :

          $ kubectl -n argocd edit deployments.apps devops-argocd-dex-server