charts/pipelines-library/templates/tasks/gerrit-ssh-cmd.yaml (79 lines of code) (raw):

{{ if .Values.pipelines.deployableResources.tasks }} apiVersion: tekton.dev/v1 kind: Task metadata: name: gerrit-ssh-cmd labels: {{- include "edp-tekton.labels" . | nindent 4 }} annotations: tekton.dev/pipelines.minVersion: "0.12.1" tekton.dev/categories: Gerrit Tools tekton.dev/tags: ssh, gerrit api tekton.dev/displayName: "gerrit api over ssh" tekton.dev/platforms: "linux/amd64" spec: description: >- The following task can be used to run gerrit votes using ssh. The following task takes gerrit host and required credentials as input along with the command and run it on gerrit server. workspaces: - name: ssh-directory optional: true description: | A .ssh directory with private key, known_hosts, config, etc. Copied to the user's home before ssh commands are executed. params: - name: GERRIT_HOST type: string description: Remote host to connect default: "gerrit" - name: USERNAME type: string description: SSH username default: "edp-ci" - name: GERRIT_PORT type: string description: SSH port, default is 22 default: "22" - name: SSH_GERRIT_COMMAND type: string description: The gerrit command you want to run over ssh - name: ERR_EXIT_CODE type: string description: Define Error exit code for task. By default - 1. In case of skip set 0 default: "1" - name: userHome description: | Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user or have overridden the gitInitImage param with an image containing custom user configuration. type: string default: "/tekton/home" steps: - name: ssh image: '{{ include "edp-tekton.registry" . }}/epamedp/tekton-openssh-client:0.1.5' env: - name: GERRIT_HOST value: "$(params.GERRIT_HOST)" - name: GERRIT_PORT value: "$(params.GERRIT_PORT)" - name: USERNAME value: "$(params.USERNAME)" - name: SSH_GERRIT_COMMAND value: "$(params.SSH_GERRIT_COMMAND)" - name: PARAM_USER_HOME value: $(params.userHome) - name: ERR_EXIT_CODE value: $(params.ERR_EXIT_CODE) - name: WORKSPACE_SSH_DIRECTORY_BOUND value: $(workspaces.ssh-directory.bound) - name: WORKSPACE_SSH_DIRECTORY_PATH value: $(workspaces.ssh-directory.path) script: | #!/usr/bin/env sh set -eu if [ "${WORKSPACE_SSH_DIRECTORY_BOUND}" = "true" ] ; then cp -R "${WORKSPACE_SSH_DIRECTORY_PATH}" "${PARAM_USER_HOME}"/.ssh chmod 700 "${PARAM_USER_HOME}"/.ssh chmod -R 400 "${PARAM_USER_HOME}"/.ssh/* fi ssh -o StrictHostKeyChecking=no -p ${GERRIT_PORT} ${USERNAME}@${GERRIT_HOST} gerrit ${SSH_GERRIT_COMMAND} || exit ${ERR_EXIT_CODE} {{ end }}