You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
3.0 KiB
145 lines
3.0 KiB
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
labels:
|
|
kubernetes.io/metadata.name: os-builder
|
|
name: os-builder
|
|
spec:
|
|
finalizers:
|
|
- kubernetes
|
|
---
|
|
apiVersion: image.openshift.io/v1
|
|
kind: ImageStream
|
|
metadata:
|
|
labels:
|
|
app: ssh-client
|
|
name: ssh-client
|
|
namespace: os-builder
|
|
spec:
|
|
lookupPolicy:
|
|
local: false
|
|
---
|
|
apiVersion: image.openshift.io/v1
|
|
kind: ImageStream
|
|
metadata:
|
|
labels:
|
|
app: ssh-client
|
|
name: ubi9-minimal
|
|
namespace: os-builder
|
|
spec:
|
|
lookupPolicy:
|
|
local: false
|
|
tags:
|
|
- name: '9.3'
|
|
from:
|
|
kind: DockerImage
|
|
name: >-
|
|
registry.access.redhat.com/ubi9/ubi-minimal:9.3
|
|
generation: 1
|
|
importPolicy:
|
|
scheduled: true
|
|
importMode: Legacy
|
|
referencePolicy:
|
|
type: Source
|
|
---
|
|
apiVersion: build.openshift.io/v1
|
|
kind: BuildConfig
|
|
metadata:
|
|
labels:
|
|
app: ssh-client
|
|
name: ssh-client
|
|
namespace: os-builder
|
|
spec:
|
|
failedBuildsHistoryLimit: 5
|
|
nodeSelector: null
|
|
output:
|
|
to:
|
|
kind: ImageStreamTag
|
|
name: ssh-client:latest
|
|
postCommit: {}
|
|
resources: {}
|
|
runPolicy: Serial
|
|
source:
|
|
dockerfile: |-
|
|
FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3
|
|
RUN microdnf install -y openssh-clients \
|
|
&& microdnf clean all \
|
|
&& useradd -m tekton
|
|
USER tekton
|
|
strategy:
|
|
dockerStrategy:
|
|
from:
|
|
kind: ImageStreamTag
|
|
name: ubi9-minimal:9.3
|
|
namespace: os-builder
|
|
successfulBuildsHistoryLimit: 5
|
|
triggers:
|
|
- type: ConfigChange
|
|
- imageChange: {}
|
|
type: ImageChange
|
|
---
|
|
apiVersion: tekton.dev/v1beta1
|
|
kind: Task
|
|
metadata:
|
|
name: ssh-client
|
|
namespace: os-builder
|
|
spec:
|
|
params:
|
|
- name: sshKey
|
|
type: string
|
|
default: ssh-privatekey
|
|
- name: sshUsername
|
|
type: string
|
|
- name: sshHostname
|
|
type: string
|
|
- name: sshCommand
|
|
type: string
|
|
volumes:
|
|
- name: ssh
|
|
secret:
|
|
secretName: os-builder-ssh-config
|
|
defaultMode: 0600
|
|
steps:
|
|
- name: ssh
|
|
image: image-registry.openshift-image-registry.svc:5000/os-builder/ssh-client:latest
|
|
workingDir: /home/tekton
|
|
volumeMounts:
|
|
- name: ssh
|
|
mountPath: /home/tekton/.ssh
|
|
env:
|
|
- name: SSH_USERNAME
|
|
value: "$(params.sshUsername)"
|
|
- name: SSH_KEY
|
|
value: "$(params.sshKey)"
|
|
- name: SSH_HOSTNAME
|
|
value: "$(params.sshHostname)"
|
|
- name: SSH_COMMAND
|
|
value: "$(params.sshCommand)"
|
|
script: |
|
|
#!/bin/bash
|
|
set -Eeuo pipefail
|
|
|
|
echo "========================================================="
|
|
echo " Executing OS Builder on $SSH_HOSTNAME"
|
|
echo "========================================================="
|
|
echo
|
|
|
|
ssh -i "~/.ssh/$SSH_KEY" "$SSH_USERNAME@$SSH_HOSTNAME" "$SSH_COMMAND"
|
|
---
|
|
apiVersion: tekton.dev/v1beta1
|
|
kind: Pipeline
|
|
metadata:
|
|
name: os-builder
|
|
namespace: os-builder
|
|
spec:
|
|
tasks:
|
|
- name: ssh-client
|
|
params:
|
|
- name: sshUsername
|
|
value: "john"
|
|
- name: sshHostname
|
|
value: "os-builder.acme.tld"
|
|
- name: sshCommand
|
|
value: "/home/john/build.sh"
|
|
taskRef:
|
|
name: ssh-client
|
|
|