Initial commit
Some checks failed
Setup Stackit CLI / Install and Use Stackit CLI (push) Failing after 13s
Some checks failed
Setup Stackit CLI / Install and Use Stackit CLI (push) Failing after 13s
This commit is contained in:
commit
bc7f7cc477
5 changed files with 176 additions and 0 deletions
73
.forgejo/workflows/action.yaml
Normal file
73
.forgejo/workflows/action.yaml
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
name: Setup Stackit CLI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
setup-stackit-cli:
|
||||
name: Install and Use Stackit CLI
|
||||
runs-on: docker-dind
|
||||
|
||||
env:
|
||||
STACKIT_SERVICE_ACOUNT_KEY: ${{ secrets.STACKIT_SERVICE_ACOUNT_KEY }}
|
||||
STACKIT_PROJECT_ID: ${{ secrets.STACKIT_PROJECT_ID }}
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download and Install Stackit CLI
|
||||
run: |
|
||||
# Define variables
|
||||
VERSION="0.40.7"
|
||||
BIN_DIR="/usr/local/bin"
|
||||
DOWNLOAD_URL="https://github.com/stackitcloud/stackit-cli/releases/download/v${VERSION}/stackit-cli_${VERSION}_linux_amd64.tar.gz"
|
||||
|
||||
# Download and extract
|
||||
curl -sSL "$DOWNLOAD_URL" | tar -xz
|
||||
|
||||
# Move CLI binary to PATH
|
||||
mv stackit "$BIN_DIR/"
|
||||
chmod +x "$BIN_DIR/stackit"
|
||||
|
||||
# Verify installation
|
||||
stackit --version
|
||||
shell: bash
|
||||
|
||||
- name: Install kubectl
|
||||
run: |
|
||||
# Get latest version
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
chmod +x kubectl
|
||||
mv kubectl /usr/local/bin/kubectl
|
||||
|
||||
# Verify kubectl installation
|
||||
kubectl version --client --output=yaml
|
||||
shell: bash
|
||||
|
||||
- name: Authenticate with STACKIT
|
||||
run: |
|
||||
echo "$STACKIT_SERVICE_ACOUNT_KEY" > "$HOME/.stackit.json"
|
||||
stackit auth activate-service-account --service-account-key-path "$HOME/.stackit.json"
|
||||
shell: bash
|
||||
|
||||
- name: Set project config
|
||||
run: |
|
||||
stackit config set --project-id "$STACKIT_PROJECT_ID"
|
||||
shell: bash
|
||||
|
||||
- name: Get Kubeconfig SKE Cluster
|
||||
run: stackit ske kubeconfig create pocnc-k8s --assume-yes
|
||||
shell: bash
|
||||
|
||||
- name: Kubectl apply all namespaces in root folder
|
||||
run: kubectl apply -f .
|
||||
shell: bash
|
||||
|
||||
- name: Cleanup
|
||||
run: rm -f "$HOME/.stackit.json"
|
||||
if: always()
|
||||
shell: bash
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.idea
|
||||
0
README.md
Normal file
0
README.md
Normal file
98
ci-runner/runner.yaml
Normal file
98
ci-runner/runner.yaml
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: forgejo-runner
|
||||
---
|
||||
apiVersion: v1
|
||||
stringData:
|
||||
token: ""
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: runner-secret
|
||||
namespace: forgejo-runner
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: forgejo-runner
|
||||
name: forgejo-runner
|
||||
namespace: forgejo-runner
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: forgejo-runner
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: forgejo-runner
|
||||
spec:
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: runner-data
|
||||
emptyDir: {}
|
||||
initContainers:
|
||||
- name: runner-register
|
||||
image: code.forgejo.org/forgejo/runner:6.3.1
|
||||
command:
|
||||
- forgejo-runner
|
||||
- register
|
||||
- --no-interactive
|
||||
- --instance
|
||||
- $(FORGEJO_INSTANCE_URL)
|
||||
- --token
|
||||
- $(RUNNER_SECRET)
|
||||
- --labels
|
||||
- docker-dind # replace with your runner name
|
||||
env:
|
||||
- name: RUNNER_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: RUNNER_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: runner-secret
|
||||
key: token
|
||||
- name: FORGEJO_INSTANCE_URL
|
||||
value: https://xxx.git.onstackit.cloud/ # replace with your git instance
|
||||
volumeMounts:
|
||||
- name: runner-data
|
||||
mountPath: /data
|
||||
|
||||
containers:
|
||||
- name: runner
|
||||
image: code.forgejo.org/forgejo/runner:6.3.1
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
echo "Waiting for Docker daemon..."
|
||||
while ! nc -z localhost 2375 </dev/null; do
|
||||
echo "waiting..."
|
||||
sleep 5
|
||||
done
|
||||
apk add --no-cache docker nodejs openssh curl yq coreutils
|
||||
forgejo-runner generate-config > /data/config.yml
|
||||
sed -i -e "s|privileged: .*|privileged: true|" /data/config.yml
|
||||
exec forgejo-runner -c /data/config.yml daemon
|
||||
env:
|
||||
- name: DOCKER_HOST
|
||||
value: tcp://localhost:2375
|
||||
securityContext:
|
||||
privileged: true
|
||||
runAsUser: 0
|
||||
volumeMounts:
|
||||
- name: runner-data
|
||||
mountPath: /data
|
||||
|
||||
- name: daemon
|
||||
image: docker:27.0.1-dind
|
||||
command:
|
||||
- dockerd
|
||||
- -H
|
||||
- tcp://0.0.0.0:2375
|
||||
- --tls=false
|
||||
securityContext:
|
||||
privileged: true
|
||||
4
test1.yaml
Normal file
4
test1.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: test1
|
||||
Loading…
Reference in a new issue