新增learn-kubernetes(https://github.com/yyong-brs/learn-kubernetes)相关文件
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package io.kubeless;
|
||||
|
||||
import io.kubeless.Event;
|
||||
import io.kubeless.Context;
|
||||
|
||||
public class Kiamol {
|
||||
public String hello(io.kubeless.Event event, io.kubeless.Context context) {
|
||||
return "Hello from chapter 21!";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: todo-api
|
||||
labels:
|
||||
kiamol: ch21
|
||||
spec:
|
||||
rules:
|
||||
- host: api.todo.kiamol.local
|
||||
http:
|
||||
paths:
|
||||
- path: /todos
|
||||
backend:
|
||||
serviceName: todo-api
|
||||
servicePort: 8080
|
||||
|
||||
# this spec is equivalent to running
|
||||
# kubeless trigger http create todo-api --function-name todo-api --path todos --hostname api.todo.kiamol.local
|
||||
# but that fails with Kubeless 1.0.7 running on Kubernetes 1.18 - see
|
||||
# https://github.com/kubeless/kubeless/issues/1130
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "todo-api",
|
||||
"version": "0.1.0",
|
||||
"main": "server.js",
|
||||
"author": "kiamol",
|
||||
"dependencies": {
|
||||
"nats" : "1.4.9",
|
||||
"uuid" : "8.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
const NATS = require('nats')
|
||||
const nc = NATS.connect({url: 'nats://message-queue:4222', json: true})
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
function handler(event, context) {
|
||||
console.log('** todo-api handler called');
|
||||
|
||||
var newItemEvent = {
|
||||
Subject: "events.todo.newitem",
|
||||
Item: {
|
||||
Item: event.data,
|
||||
DateAdded: new Date().toISOString()
|
||||
},
|
||||
CorrelationId: uuidv4()
|
||||
}
|
||||
|
||||
nc.publish('events.todo.newitem', newItemEvent)
|
||||
console.log(`** New item published, event ID: ${newItemEvent.CorrelationId}`);
|
||||
}
|
||||
|
||||
module.exports = { handler }
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
def handler(event, context):
|
||||
print(f"AUDIT @ {event['data']['Item']['DateAdded']}: {event['data']['Item']['Item']}")
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: kubeless.io/v1beta1
|
||||
kind: CronJobTrigger
|
||||
metadata:
|
||||
finalizers:
|
||||
- kubeless.io/cronjobtrigger
|
||||
labels:
|
||||
created-by: kubeless
|
||||
name: todo-mutating-handler
|
||||
namespace: default
|
||||
spec:
|
||||
function-name: todo-mutating-handler
|
||||
schedule: '*/1 * * * *'
|
||||
|
||||
# finalizers help with clean-up tasks - see
|
||||
# https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers
|
||||
@@ -0,0 +1,28 @@
|
||||
apiVersion: kubeless.io/v1beta1
|
||||
kind: Function
|
||||
metadata:
|
||||
name: todo-mutating-handler
|
||||
namespace: default
|
||||
label:
|
||||
created-by: kubeless
|
||||
spec:
|
||||
runtime: php7.3
|
||||
timeout: "10"
|
||||
handler: todo-mutating-handler.mutate
|
||||
deps: ""
|
||||
function-content-type: text
|
||||
function: |
|
||||
<?php
|
||||
|
||||
function mutate($event, $context) {
|
||||
fwrite(STDOUT, '* Mutating handler called.');
|
||||
$conn = pg_connect('host=todo-db dbname=todo user=postgres password=kiamol-2*2*');
|
||||
if (!$conn) {
|
||||
echo 'Connection failed';
|
||||
exit;
|
||||
}
|
||||
$sql = 'UPDATE "public"."ToDos" SET "Item"=\'Leave a nice review for KIAMOL :)\'';
|
||||
$result = pg_query($conn, $sql);
|
||||
fwrite(STDOUT, '* Mutation complete.');
|
||||
return "* Mutated...";
|
||||
}
|
||||
Reference in New Issue
Block a user