26 Commits
Author SHA1 Message Date
Pierre Geeraert 80a75a445e working on views
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 35s
2025-05-30 11:51:23 +01:00
pi-ux-ce 385d42d0be update secret
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 43s
2025-04-16 11:13:00 +01:00
pi-ux-ce 2514603962 Display the URL instead of redirection
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m34s
2025-03-10 08:28:59 +00:00
pi-ux-ce d071b135e7 use Infrequent_access instead
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m8s
2024-11-12 11:08:05 +00:00
pi-ux-ce 433185df3e enable .gitignore
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 37s
2024-11-12 11:03:56 +00:00
pi-ux-ce ccad16f38c change to an URL instead
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 41s
2024-11-12 11:02:28 +00:00
pi-ux-ce c7e5afc750 add scale down as well and remove debug
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 55s
2024-11-06 22:44:47 +00:00
pi-ux-ce 80877663a9 new version with the scale Up option
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 59s
2024-11-06 11:09:52 +00:00
pi-ux-ce ceaf0f0ef6 separate the runners
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 7s
2024-10-30 11:15:46 +00:00
pi-ux-ce d6135402c2 separate the runners
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 7s
2024-10-30 11:15:31 +00:00
pi-ux-ce fa365f956e optimise by running a pip upgrade
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3m56s
2024-10-30 11:11:11 +00:00
pi-ux-ce 82ed5d12e1 it was working actually
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 3m20s
2024-10-30 11:07:43 +00:00
pi-ux-ce a9b6c92864 try againto apply migrations
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 2m42s
2024-10-30 11:02:10 +00:00
pi-ux-ce cc2d9e1b14 try to apply migrations
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m55s
2024-10-30 10:54:26 +00:00
pi-ux-ce 3dd8fdb7ca try to apply migrations
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 2m47s
2024-10-30 10:47:00 +00:00
pi-ux-ce db20b291e3 modify other file to test action trigger 2024-10-29 23:27:32 +00:00
pi-ux-ce 096a71a7fc remove pyyaml just to trigger action
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
2024-10-29 23:26:53 +00:00
pi-ux-ce 83d346b632 update dockerfile only to test the action trigger 2024-10-29 23:26:22 +00:00
pi-ux-ce 202797aed5 install pyyaml just to trigger action 2024-10-29 23:25:04 +00:00
pi-ux-ce 0cb583de09 update dockerfile only to test the action trigger 2024-10-29 23:23:55 +00:00
pi-ux-ce bf19250116 update dockerfile only to test the action trigger 2024-10-29 23:23:06 +00:00
pi-ux-ce e59e7b439d try this new action 2024-10-29 23:22:24 +00:00
pi-ux-ce 83e2ba5be2 update code with latest version
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
2024-10-29 23:17:04 +00:00
pi-ux-ce 7cc8891533 needs this secret 2024-10-29 23:16:10 +00:00
pi-ux-ce 8a0cd24d69 also upload new yaml file to check differences 2024-10-29 23:15:57 +00:00
pi-ux-ce 1cb49c3127 add django_code_new just in case before removing it 2024-10-29 23:15:37 +00:00
41 changed files with 516584 additions and 19 deletions
@@ -1,6 +1,13 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
on:
push:
branches:
- "*"
paths:
- 'dockerfile'
tags-ignore:
- '*'
jobs:
Explore-Gitea-Actions:
@@ -30,10 +37,4 @@ jobs:
tags: gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
- name: Perform kubectl tasks
uses: actions-hub/kubectl@master
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
with:
args: apply -f .
- run: echo "🍏 This job's status is ${{ job.status }}."
+23
View File
@@ -0,0 +1,23 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- name: Perform kubectl tasks
uses: actions-hub/kubectl@master
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
with:
args: apply -f .
- run: echo "🍏 This job's status is ${{ job.status }}."
+1
View File
@@ -0,0 +1 @@
*/__pycache__/*
+1 -2
View File
@@ -20,8 +20,7 @@ spec:
spec:
containers:
- name: django-python
# image: localhost:31795/django-python
image: gitea.tryton.geeraert.eu/pi-ux-ce/django-python:1.0.0
image: gitea.tryton.geeraert.eu/pi-ux-ce/django-python:latest
imagePullPolicy: Always
ports:
- containerPort: 8000
+1 -1
View File
@@ -1,6 +1,6 @@
=======
# Django_kube
test
## Getting started
@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
{% load bootstrap5 %}
{% bootstrap_css %}
{% bootstrap_javascript %}
</head>
<body>
<h1 class="display-1">Welcome to my website!</h1>
<div class="container">
<div class="list-group">
{% if thislist %}
<ul>
{% for question in thislist %}
<a href="#" class="list-group-item">{{ question }}</a>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
</div>
</div>
{% block content %}
{% endblock %}
</div>
</body>
</html>
+18
View File
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>My Website</title>
</head>
<body>
<h1>Welcome to my website!</h1>
{% if thislist %}
<ul>
{% for question in thislist %}
<h1>{{ question }}</h1>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
</body>
</html>
+9
View File
@@ -0,0 +1,9 @@
from django.shortcuts import render
def home(request):
thislist = ["apple", "banana", "cherry"]
return render(request, 'home.html',{'thislist': thislist})
def about(request):
thislist = ["apple", "banana", "cherry"]
return render(request, 'about.html',{'thislist': thislist})
+5 -2
View File
@@ -25,7 +25,7 @@ SECRET_KEY = 'django-insecure-71%)_#e#o9-dl2o^6mfud-*rw+4+8vy-nd*bzeier&(34ap-p9
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['reverse.tryton.geeraert.eu','192.168.4.100','django.tryton.geeraert.eu']
ALLOWED_HOSTS = ['reverse.tryton.geeraert.eu','192.168.4.100','django.tryton.geeraert.eu','localhost']
# Application definition
@@ -37,6 +37,7 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap5',
]
MIDDLEWARE = [
@@ -54,7 +55,8 @@ ROOT_URLCONF = 'django_code.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
#'DIRS': ["/code/django_code/templates","/code/django_code/dashboard/templates/"],
'DIRS': [BASE_DIR / "templates","django_code/dashboard/templates/"],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
@@ -121,3 +123,4 @@ STATIC_URL = 'static/'
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
#
+14 -2
View File
@@ -20,7 +20,9 @@ from django.urls import path
from random_simpsons import apps as random_simpsons
from paperless_django import apps as paperless_django
from onenote import apps as onenote
from dashboard import apps as dashboard
from dashboard import apps as dashboardapp
from dashboard import views as dashboardview
from kubernetes_connection import apps as kubernetes_connection
urlpatterns = [
# path('admin/', admin.site.urls),
@@ -38,9 +40,19 @@ urlpatterns = [
path('onenote/hello/', onenote.hello),
################### onenote ###################
path('dashboard/hello/', dashboard.hello),
path('dashboard/hello/', dashboardapp.hello),
path('dashboard/view/about', dashboardview.about),
path('dashboard/view/home', dashboardview.home),
################## kubernetes_connection#####
path('kubernetes_connection/hello/', kubernetes_connection.hello),
path('kubernetes_connection/nodes/', kubernetes_connection.nodes),
path('kubernetes_connection/backup_job/', kubernetes_connection.backup_job),
path('kubernetes_connection/backup_job_yaml/', kubernetes_connection.backup_job_yaml),
path('kubernetes_connection/scale_up/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_up),
path('kubernetes_connection/scale_down/<str:namespace_name>/<str:deploy_name>', kubernetes_connection.scale_down),
# path('bookstack/', docker_connection.apps.hello),
# path('test/', docker_connection.apps.http_call_test),
# path('proxmox/', docker_connection.apps.proxmox),
@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.
+125
View File
@@ -0,0 +1,125 @@
from django.apps import AppConfig
from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
from django.core.files import File
from kubernetes import client, config
#from django.template.loader import render_to_string
import time
import random
import mimetypes
import ruamel.yaml
import yaml
import urllib.request
def hello(request):
return HttpResponse('<h1>Hello k8s!</h1>')
def scale_up(request,namespace_name,deploy_name):
config.load_kube_config(config_file='/code/kubeconfig')
api = client.AppsV1Api()
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
deployment.spec.replicas = 2
resp = api.patch_namespaced_deployment(
name=deploy_name, namespace=namespace_name, body=deployment);
return HttpResponse('<h1>Scaled up !</h1>')
def scale_down(request,namespace_name,deploy_name):
config.load_kube_config(config_file='/code/kubeconfig')
api = client.AppsV1Api()
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
deployment.spec.replicas = 0
resp = api.patch_namespaced_deployment(
name=deploy_name, namespace=namespace_name, body=deployment);
return HttpResponse('<h1>Scaled down !</h1>')
def nodes(request):
config.load_kube_config(config_file='/code/kubeconfig')
v1 = client.CoreV1Api()
# v1.list_node()
pod_manifest = {
'apiVersion': 'v1',
'kind': 'Pod',
'metadata': {
'labels': {
'bot': 'current-bot'
},
'name': 'podname',
'namespace': 'echo-server'
},
'spec': {
'containers': [{
'image': 'gitea.tryton.geeraert.eu/pi-ux-ce/bitwarden_cli:1.0.1',
# 'pod-running-timeout': '5m0s',
'name': 'testpython',
'env': [
{'name': 'env_variable', 'value': 'env_value'},
]
}],
'restartPolicy': 'Always',
# 'serviceAccountName': 'bots-service-account'
}
}
# print(f'POD MANIFEST:\n{pod_manifest}')
api_response = v1.create_namespaced_pod(body=pod_manifest,namespace='echo-server')
return HttpResponse(api_response)
def backup_job(request):
config.load_kube_config(config_file='/code/kubeconfig')
v1 = client.CoreV1Api()
#v1 = client.BatchV1Api()
# v1.list_node()
pod_manifest_job = {
'apiVersion': 'batch/v1',
'kind': 'Job',
'metadata': {
'name': 'bitwarden-backup-django',
'namespace': 'bwbackup'
},
'spec': {
'template': {
'spec': {
'containers': [{
'image': 'gitea.tryton.geeraert.eu/pi-ux-ce/bitwarden_cli:1.0.1',
'name': 'testpython',
'command': ['/bin/sh -c /config/export_bitwarden.sh'],
'env': [
{'name': 'env_variable', 'value': 'env_value'},
],
'volumeMounts': [
{'name': 'scripts', 'configMap': [{'name':'bitwarden-export-scripts'},]},
]
}],
'restartPolicy': 'Always',
}
}
}
}
api_response = v1.create_namespaced_job(body=pod_manifest_job)
return HttpResponse(api_response)
#help with yaml import
#https://github.com/kubernetes-client/python/issues/589
def backup_job_yaml(request):
config.load_kube_config(config_file='/code/kubeconfig')
v1 = client.BatchV1Api()
with urllib.request.urlopen(https://gitea.tryton.geeraert.eu/pi-ux-ce/Backup_kube/raw/branch/main/Infrequent_access/pod.yaml") as manifest_url:
# with open('/code/pod.yaml') as :
job = yaml.safe_load(manifest_url)
v1.create_namespaced_job(
job['metadata']['namespace'], job, pretty=True
)
return HttpResponse(job['metadata']['namespace'])
@@ -0,0 +1,3 @@
from django.db import models
# Create your models here.
@@ -0,0 +1 @@
<h1>Hello template!</h1>
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
@@ -0,0 +1,8 @@
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from django.shortcuts import render
def hello(request):
return HttpResponse('<h1>Hello Django!</h1>')
Binary file not shown.
+20 -3
View File
@@ -2,9 +2,26 @@ from django.apps import AppConfig
from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
import time
import random
#from django.template.loader import render_to_string
from django.template import loader
#import time
#import random
def hello(request):
return HttpResponse('<h1>Hello onenote! <h1>')
# htmlContent = '
#<!DOCTYPE html>
#<html lang="en">
#<body>
#<strong>Hello World from const</strong>
#</body>
#</html>
#'
# response = "coucou"
# context = {'response': HttpResponse(response)}
# return HttpResponse(htmlContent)
# return HttpResponse('<h1>Hello onenote! <h1>')
# return render(request, 'hello.html', context)
template = loader.get_template('onenote/hello.html')
# template = loader.get_template('onenote/Roser.mht')
return HttpResponse(template.render())
+6
View File
@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<body>
<strong>Hello World</strong>
</body>
</html>
+2 -2
View File
@@ -63,6 +63,6 @@ def simpsons(request):
final_url = simpsons_url+str(random_seasons)+ "-episode-"+str(random_episode)#
print(final_url)
# return HttpResponse(str(final_url))
return HttpResponse(str(final_url))
# time.sleep(10)
return redirect(str(final_url))
# return redirect(str(final_url))
File diff suppressed because it is too large Load Diff
+6
View File
@@ -0,0 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<body>
<strong>Hello World template</strong>
</body>
</html>
+2
View File
@@ -5,7 +5,9 @@ WORKDIR /code/
COPY requirements.txt ./
COPY django_code ./
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN python django_code/manage.py migrate
CMD [ "python","django_code/manage.py","runserver","0.0.0.0:8000" ]
File diff suppressed because one or more lines are too long