mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-19 20:46:40 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
dca036ee51 | |||
583f5ad1b0 | |||
659f98cc0d | |||
c7d9353991 |
@ -46,7 +46,12 @@ var rootCommand = &cobra.Command{
|
|||||||
Use: "faasd",
|
Use: "faasd",
|
||||||
Short: "Start faasd",
|
Short: "Start faasd",
|
||||||
Long: `
|
Long: `
|
||||||
faasd - serverless without Kubernetes
|
faasd - Serverless For Everyone Else
|
||||||
|
|
||||||
|
Learn how to build, secure, and monitor functions with faasd with
|
||||||
|
the eBook:
|
||||||
|
|
||||||
|
https://gumroad.com/l/serverless-for-everyone-else
|
||||||
`,
|
`,
|
||||||
RunE: runRootCommand,
|
RunE: runRootCommand,
|
||||||
SilenceUsage: true,
|
SilenceUsage: true,
|
||||||
|
@ -41,7 +41,7 @@ services:
|
|||||||
- "127.0.0.1:9090:9090"
|
- "127.0.0.1:9090:9090"
|
||||||
|
|
||||||
gateway:
|
gateway:
|
||||||
image: ghcr.io/openfaas/gateway:0.20.8
|
image: ghcr.io/openfaas/gateway:0.20.11
|
||||||
environment:
|
environment:
|
||||||
- basic_auth=true
|
- basic_auth=true
|
||||||
- functions_provider_url=http://faasd-provider:8081/
|
- functions_provider_url=http://faasd-provider:8081/
|
||||||
|
2
go.mod
2
go.mod
@ -30,7 +30,7 @@ require (
|
|||||||
github.com/opencontainers/runc v1.0.0-rc9 // indirect
|
github.com/opencontainers/runc v1.0.0-rc9 // indirect
|
||||||
github.com/opencontainers/runtime-spec v1.0.2
|
github.com/opencontainers/runtime-spec v1.0.2
|
||||||
github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
||||||
github.com/openfaas/faas-provider v0.17.1
|
github.com/openfaas/faas-provider v0.17.3
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/prometheus/procfs v0.2.0 // indirect
|
github.com/prometheus/procfs v0.2.0 // indirect
|
||||||
github.com/sethvargo/go-password v0.1.3
|
github.com/sethvargo/go-password v0.1.3
|
||||||
|
4
go.sum
4
go.sum
@ -185,6 +185,10 @@ github.com/openfaas/faas-provider v0.17.0 h1:4rT8CosKhI5xaAMqbyihEgR6KefO/ViJdF0
|
|||||||
github.com/openfaas/faas-provider v0.17.0/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
github.com/openfaas/faas-provider v0.17.0/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
github.com/openfaas/faas-provider v0.17.1 h1:P5xTLN+/08PLLh4auIlO/PaUD/J3BUTmaC3en8N5zbs=
|
github.com/openfaas/faas-provider v0.17.1 h1:P5xTLN+/08PLLh4auIlO/PaUD/J3BUTmaC3en8N5zbs=
|
||||||
github.com/openfaas/faas-provider v0.17.1/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
github.com/openfaas/faas-provider v0.17.1/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
|
github.com/openfaas/faas-provider v0.17.2 h1:jZ+Z83A/tyJoI1AnpyLN3o0B4K0UEsz1YJ3erASMu+s=
|
||||||
|
github.com/openfaas/faas-provider v0.17.2/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
|
github.com/openfaas/faas-provider v0.17.3 h1:LN76lrXUKAx27o5X8l+daKWEzsdiW2E99jMOlI1SO5Q=
|
||||||
|
github.com/openfaas/faas-provider v0.17.3/go.mod h1:fq1JL0mX4rNvVVvRLaLRJ3H6o667sHuyP5p/7SZEe98=
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
@ -29,8 +29,8 @@ import (
|
|||||||
|
|
||||||
const annotationLabelPrefix = "com.openfaas.annotations."
|
const annotationLabelPrefix = "com.openfaas.annotations."
|
||||||
|
|
||||||
|
// MakeDeployHandler returns a handler to deploy a function
|
||||||
func MakeDeployHandler(client *containerd.Client, cni gocni.CNI, secretMountPath string, alwaysPull bool) func(w http.ResponseWriter, r *http.Request) {
|
func MakeDeployHandler(client *containerd.Client, cni gocni.CNI, secretMountPath string, alwaysPull bool) func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
if r.Body == nil {
|
if r.Body == nil {
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/opencontainers/runtime-spec/specs-go"
|
"github.com/opencontainers/runtime-spec/specs-go"
|
||||||
|
|
||||||
@ -27,6 +28,7 @@ type Function struct {
|
|||||||
secrets []string
|
secrets []string
|
||||||
envVars map[string]string
|
envVars map[string]string
|
||||||
envProcess string
|
envProcess string
|
||||||
|
createdAt time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListFunctions returns a map of all functions with running tasks on namespace
|
// ListFunctions returns a map of all functions with running tasks on namespace
|
||||||
@ -81,6 +83,11 @@ func GetFunction(client *containerd.Client, name string) (Function, error) {
|
|||||||
return Function{}, fmt.Errorf("unable to load function spec for reading secrets: %s, error %s", name, err)
|
return Function{}, fmt.Errorf("unable to load function spec for reading secrets: %s, error %s", name, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info, err := c.Info(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return Function{}, fmt.Errorf("can't load info for: %s, error %s", name, err)
|
||||||
|
}
|
||||||
|
|
||||||
envVars, envProcess := readEnvFromProcessEnv(spec.Process.Env)
|
envVars, envProcess := readEnvFromProcessEnv(spec.Process.Env)
|
||||||
secrets := readSecretsFromMounts(spec.Mounts)
|
secrets := readSecretsFromMounts(spec.Mounts)
|
||||||
|
|
||||||
@ -92,6 +99,7 @@ func GetFunction(client *containerd.Client, name string) (Function, error) {
|
|||||||
fn.secrets = secrets
|
fn.secrets = secrets
|
||||||
fn.envVars = envVars
|
fn.envVars = envVars
|
||||||
fn.envProcess = envProcess
|
fn.envProcess = envProcess
|
||||||
|
fn.createdAt = info.CreatedAt
|
||||||
|
|
||||||
replicas := 0
|
replicas := 0
|
||||||
task, err := c.Task(ctx, nil)
|
task, err := c.Task(ctx, nil)
|
||||||
|
@ -34,6 +34,7 @@ func MakeReadHandler(client *containerd.Client) func(w http.ResponseWriter, r *h
|
|||||||
Secrets: fn.secrets,
|
Secrets: fn.secrets,
|
||||||
EnvVars: fn.envVars,
|
EnvVars: fn.envVars,
|
||||||
EnvProcess: fn.envProcess,
|
EnvProcess: fn.envProcess,
|
||||||
|
CreatedAt: fn.createdAt,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,6 +42,5 @@ func MakeReadHandler(client *containerd.Client) func(w http.ResponseWriter, r *h
|
|||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
w.Write(body)
|
w.Write(body)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ func MakeReplicaReaderHandler(client *containerd.Client) func(w http.ResponseWri
|
|||||||
Secrets: f.secrets,
|
Secrets: f.secrets,
|
||||||
EnvVars: f.envVars,
|
EnvVars: f.envVars,
|
||||||
EnvProcess: f.envProcess,
|
EnvProcess: f.envProcess,
|
||||||
|
CreatedAt: f.createdAt,
|
||||||
}
|
}
|
||||||
|
|
||||||
functionBytes, _ := json.Marshal(found)
|
functionBytes, _ := json.Marshal(found)
|
||||||
|
10
vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
10
vendor/github.com/openfaas/faas-provider/types/model.go
generated
vendored
@ -1,5 +1,7 @@
|
|||||||
package types
|
package types
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
// FunctionDeployment represents a request to create or update a Function.
|
// FunctionDeployment represents a request to create or update a Function.
|
||||||
type FunctionDeployment struct {
|
type FunctionDeployment struct {
|
||||||
|
|
||||||
@ -100,7 +102,9 @@ type FunctionStatus struct {
|
|||||||
// mount-point.
|
// mount-point.
|
||||||
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
|
ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty"`
|
||||||
|
|
||||||
// ** Status fields *8
|
// ================
|
||||||
|
// Fields for status
|
||||||
|
// ================
|
||||||
|
|
||||||
// InvocationCount count of invocations
|
// InvocationCount count of invocations
|
||||||
InvocationCount float64 `json:"invocationCount,omitempty"`
|
InvocationCount float64 `json:"invocationCount,omitempty"`
|
||||||
@ -111,4 +115,8 @@ type FunctionStatus struct {
|
|||||||
// AvailableReplicas is the count of replicas ready to receive
|
// AvailableReplicas is the count of replicas ready to receive
|
||||||
// invocations as reported by the faas-provider
|
// invocations as reported by the faas-provider
|
||||||
AvailableReplicas uint64 `json:"availableReplicas,omitempty"`
|
AvailableReplicas uint64 `json:"availableReplicas,omitempty"`
|
||||||
|
|
||||||
|
// CreatedAt is the time read back from the faas backend's
|
||||||
|
// data store for when the function or its container was created.
|
||||||
|
CreatedAt time.Time `json:"createdAt,omitempty"`
|
||||||
}
|
}
|
||||||
|
2
vendor/modules.txt
generated
vendored
2
vendor/modules.txt
generated
vendored
@ -195,7 +195,7 @@ github.com/opencontainers/runtime-spec/specs-go
|
|||||||
# github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
# github.com/openfaas/faas v0.0.0-20201205125747-9bbb25e3c7c4
|
||||||
## explicit
|
## explicit
|
||||||
github.com/openfaas/faas/gateway/requests
|
github.com/openfaas/faas/gateway/requests
|
||||||
# github.com/openfaas/faas-provider v0.17.1
|
# github.com/openfaas/faas-provider v0.17.3
|
||||||
## explicit
|
## explicit
|
||||||
github.com/openfaas/faas-provider
|
github.com/openfaas/faas-provider
|
||||||
github.com/openfaas/faas-provider/auth
|
github.com/openfaas/faas-provider/auth
|
||||||
|
Reference in New Issue
Block a user