Init commit
This commit is contained in:
commit
30451e2b5f
32
.woodpecker/build.yaml
Normal file
32
.woodpecker/build.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
build:
|
||||
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:152f5b777abda1b18e3b231c295e2574f0e1cbdb
|
||||
name: Build shoebill operator image
|
||||
privileged: true
|
||||
environment:
|
||||
- PACKAGE_NAME=softplayer/softplayer-backend
|
||||
commands:
|
||||
- git config --global --add safe.directory '*'
|
||||
- |
|
||||
if [[ "${CI_COMMIT_TAG}" ]]; then
|
||||
export CUSTOM_TAG="${CI_COMMIT_TAG}";
|
||||
fi
|
||||
- build-container
|
||||
secrets:
|
||||
- gitea_token
|
||||
backend_options:
|
||||
kubernetes:
|
||||
resources:
|
||||
requests:
|
||||
memory: 500Mi
|
||||
cpu: 200m
|
||||
limits:
|
||||
memory: 1000Mi
|
||||
cpu: 1000m
|
||||
securityContext:
|
||||
privileged: true
|
3
Containerfile
Normal file
3
Containerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM ghcr.io/flant/shell-operator:latest
|
||||
ADD /hooks /hooks
|
||||
ADD /tpls /tpls
|
9
examples/cm.yaml
Normal file
9
examples/cm.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: test
|
||||
labels:
|
||||
component: bootstrap
|
||||
data:
|
||||
provider: hetzner
|
||||
cluster: k3s
|
11
examples/pod.yaml
Normal file
11
examples/pod.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: shell-operator
|
||||
spec:
|
||||
containers:
|
||||
- name: shell-operator
|
||||
image: so
|
||||
imagePullPolicy: Never
|
||||
serviceAccountName: monitor-pods-cm
|
||||
|
15
hooks/down.sh
Normal file
15
hooks/down.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [[ $1 == "--config" ]] ; then
|
||||
cat <<EOF
|
||||
configVersion: v1
|
||||
kubernetes:
|
||||
- apiVersion: v1
|
||||
kind: Pod
|
||||
executeHookOnEvent: ["Added"]
|
||||
EOF
|
||||
else
|
||||
podName=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH)
|
||||
echo "Pod '${podName}' added"
|
||||
fi
|
||||
|
35
hooks/up.sh
Executable file
35
hooks/up.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
# ---------------------------------------------------------------------
|
||||
# This script should bootstrap a new environment, or update
|
||||
# existing ones
|
||||
# Get the configmap name and namespace to prepare the
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
if [[ $1 == "--config" ]] ; then
|
||||
cat <<EOF
|
||||
configVersion: v1
|
||||
kubernetes:
|
||||
- name: Watch softplayer configmaps
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
executeHookOnEvent: ["Added"]
|
||||
labelSelector:
|
||||
matchExpressions:
|
||||
- key: "component"
|
||||
operator: "In"
|
||||
values: ["bootstrap"]
|
||||
EOF
|
||||
else
|
||||
cmName=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH)
|
||||
echo "ConfigMap '${cmName}' added"
|
||||
PROVIDER=$(jq -r .[0].object.data.provider $BINDING_CONTEXT_PATH)
|
||||
KUBERNETES=$(jq -r .[0].object.data.kubernetes $BINDING_CONTEXT_PATH)
|
||||
if ! [ -f /tpls/${PROVIDER}-${KUBERNETES}.yaml ]; then
|
||||
echo "ERROR: template not found for ${PROVIDER}-${KUBERNETES}"
|
||||
exit 1
|
||||
fi
|
||||
export SP_CUSTOMER_ID=$(jq -r .[0].object.metadata.namespace $BINDING_CONTEXT_PATH)
|
||||
export SP_ENVIRONMENT=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH)
|
||||
envsubst < /tpls/${PROVIDER}-${KUBERNETES}.yaml | kubectl create -f -
|
||||
fi
|
||||
|
28
tpls/hetzner-k8s.yaml
Normal file
28
tpls/hetzner-k8s.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
apiVersion: tekton.dev/v1beta1
|
||||
kind: PipelineRun
|
||||
metadata:
|
||||
generateName: hetzner-k3s
|
||||
namespace: "${SP_TEKTON_RUNTIME_NS}"
|
||||
spec:
|
||||
params:
|
||||
- name: namespace
|
||||
value: "${SP_CUSTOMER_ID}"
|
||||
- name: environment
|
||||
value: "${SP_ENVIRONMENT}"
|
||||
pipelineRef:
|
||||
resolver: cluster
|
||||
params:
|
||||
- name: kind
|
||||
value: pipeline
|
||||
- name: name
|
||||
value: hetzner-k3s
|
||||
- name: namespace
|
||||
value: tekton-pipelines
|
||||
workspaces:
|
||||
- name: ssh-keys
|
||||
emptyDir: {}
|
||||
- name: inventory
|
||||
emptyDir: {}
|
||||
- name: kubeconfig-output
|
||||
emptyDir: {}
|
||||
serviceAccountName: secret-manager
|
Loading…
Reference in New Issue
Block a user