2 changed files with 166 additions and 0 deletions
@ -0,0 +1,145 @@ |
|||||
|
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 |
||||
@ -0,0 +1,21 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: Secret |
||||
|
metadata: |
||||
|
name: os-builder-ssh-config |
||||
|
namespace: os-builder |
||||
|
type: kubernetes.io/ssh-auth |
||||
|
stringData: |
||||
|
# Either specify StrictHostKeyChecking=no |
||||
|
config: | |
||||
|
Host * |
||||
|
StrictHostKeyChecking no |
||||
|
# Or provide a known_hosts file |
||||
|
known_hosts: | |
||||
|
os-builder.acme.tld ssh-ed25519 REDACTED |
||||
|
os-builder.acme.tld ssh-rsa REDACTED |
||||
|
os-builder.acme.tld ecdsa-sha2-nistp256 REDACTED |
||||
|
# Private key used to authenticate |
||||
|
ssh-privatekey: | |
||||
|
-----BEGIN OPENSSH PRIVATE KEY----- |
||||
|
REDACTED |
||||
|
-----END OPENSSH PRIVATE KEY----- |
||||
Loading…
Reference in new issue