TriggerMesh open source event-driven integration platform powered by Kubernetes and Knative.

TriggerMesh

When installing the TriggerMesh components by hand or a tool like ko, the triggermesh namespace must be created first.

$ kubectl create ns triggermesh

The current codebase can be built and deployed locally using ko as:

$ CGO_ENABLED=1 ko apply -f config/

Make can used to build all of the TriggerMesh binaries. By default, Make will generate the Kubernetes specific code, build the artifacts, run the test framework, and lastly run lint.

$ make

To run a specific Make command, make help will provide a list of valid commands.

Contributions and Support

We would love to hear your feedback. Please don't hesitate to submit bug reports and suggestions by filing issues, or contribute by submitting pull-requests.

Commercial Support

TriggerMesh Inc. offers commercial support for the TriggerMesh platform. Email us at [email protected] to get more details.

Code of Conduct

Although this project is not part of the CNCF, we abide by its code of conduct.

License

This software is licensed under the Apache License, Version 2.0.

Additionally, the End User License Agreement included in the EULA.pdf file applies to software artifacts released by TriggerMesh Inc.: compiled executables and container images.

Owner
TriggerMesh
Cloud-Native Integration Platform in a Serverless World
TriggerMesh
Comments
  • CodeQL analysis broken after introducing IBM MQ components

    CodeQL analysis broken after introducing IBM MQ components

    https://github.com/triggermesh/triggermesh/runs/4750579570?check_suite_focus=true

    go build ./cmd/...
    
    [...]
    
    # github.com/ibm-messaging/mq-golang/v5/ibmmq
    Error: ../../../go/pkg/mod/github.com/ibm-messaging/mq-golang/[email protected]/ibmmq/mqi.go:54:10: fatal error: cmqc.h: No such file or directory
     54 | #include <cmqc.h>
        |          ^~~~~~~~
    compilation terminated.
    

    Maybe we need to install extra libraries as part of the workflow.

    cc. @tzununbekov

  • Create XML to JSON transformation

    Create XML to JSON transformation

    XML to JSON transformation was worked on in a hack-ish way at InfraJS (being deprecated).

    https://github.com/triggermesh/triggermesh/blob/22c6a5877a3934f802623848f89be4d057790953/pkg/targets/adapter/infratarget/vm/javascript/javascript_vm.go#L94-L102

    XML cannot match one to one with JSON, we should give users the chance to configure how attributes are rendered into JSON and provide documentation on it. For reference, InfraJS does not allow configuring attributes rendering, but documents how it works:

    https://docs.triggermesh.io/cloud/targets/infrajs/#xml-support

  • bug/concurrent-processing-of-transformations

    bug/concurrent-processing-of-transformations

    Moving the logic from the instantiation of the adapter scope, to the application, puts everything inside the CE http request scope and fixes the issue (as far as my testing can tell)...going to perform even more heavy duty testing on it to be sure...opening PR for suggestions / thoughts

    issue: https://github.com/triggermesh/triggermesh/issues/1133

  • Create a source for Azure Service Bus Topics

    Create a source for Azure Service Bus Topics

    The design looks very close to Google Pub/Sub, therefore the source should:

    • Take the resource ID of a topic to subscribe to.
    • Reconcile a subscription for pulling messages from that topic.

    https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview

  • Allow setting the AWS endpoint url for the AWSSQSSource

    Allow setting the AWS endpoint url for the AWSSQSSource

    I'm trying to test out the AWSSQSSource with localstack. For things to work, I think I need to be able to set the AWS endpoint url to something like http://localhost:4566. Overriding the endpoint is possible with, for example, the AWS CLI:

    aws --endpoint-url=http://localhost:4566
    

    It seems like it's also possible with the Go AWS SDK, using an endpoint resolver function: https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/endpoints/

    However, it seems that overriding the AWS endpoint is not possible with a AWSSQSSource. The only related exposed configuration is the arn, which is used to configure the region on the client: https://github.com/triggermesh/triggermesh/blob/dcce7c27b6901bcfb8a3a34720605deec51a570d/pkg/sources/adapter/awssqssource/adapter.go#L133 . Then I think the default endpoint is used based on the service (SQS) and the region.

  • feat(webhooksrc): Add ability to apply the cloud event ID to the webhook pass through payload

    feat(webhooksrc): Add ability to apply the cloud event ID to the webhook pass through payload

    This PR would allow the ability to passthrough a GUID from the original payload headers, to the inner cloud events payload that is injected into the eventing system.

    Why?

    The cloud event ID can be an important attribute to mark the start of a transaction (series of events across a system)...by default a unique ID is created automatically. However, if you wanted to use that ID to track the original event -> to the end of the link you would need to know that ID ahead of time.

    Since the webhooksource is a resource for taking base JSON payloads and -> to cloud event form...and you can pass attributes, it would make sense I think that you would also be able to pass your own cloud event ID.

    Thoughts?

  • Add Azure source e2e tests

    Add Azure source e2e tests

    Migrate the Azure source end to end tests to the triggermesh/triggermesh repo. These tests require an azure service principal to be created with the following roles assigned at the subscription level:

    • Azure Event Hubs Data Owner
    • Azure Service Bus Data owner
    • EventGrid Contributor
    • Storage Blob Data Owner

    Additionally, when running the ginkgo tests, the following environment variables must be defined:

    • AZURE_SUBSCRIPTION_ID
    • AZURE_TENANT_ID
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_REGION is optional and defaults to uswest2 when omitted

    Lastly, this PR updates the makefile to add the tests directory to linting

  • Provide options to select protocol (amqp vs wss)

    Provide options to select protocol (amqp vs wss)

    topic in azureservicebustopicsources is defined on form: topicID: /subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.ServiceBus/namespaces/<someNamespace>/topics/<someTopic> i.e. no option is exposed to tell if adapter should use amqp or wss (websockets). SDK supports wss: https://github.com/Azure/azure-sdk-for-go/commit/2db8a3b9837267a02739eac7962be31a9a1d63f2

    Thus; CR should expose option (through a protocol field, or through url-style in existing topicID field) to define if protocol should be amqp, or over websockets.

    Websockets are enterprise-friendly where http-proxies are used, and where protocol choice is limited.

  • adapterOverrides is not overriding resource limts/requests for awss3source

    adapterOverrides is not overriding resource limts/requests for awss3source

    Following documentation for AWSS3Source from knative here: https://knative.dev/docs/eventing/sources/#third-party-sources, example deployment https://github.com/triggermesh/triggermesh/blob/main/config/samples/sources/awss3source.yaml goes into CrashLoopBackOff due to small resource limit. But overriding resource limits/requests is not updating the awss3source-sample deployment.

    I'm using triggermesh v1.17.0

    apiVersion: sources.triggermesh.io/v1alpha1
    kind: AWSS3Source
    metadata:
      name: sample
    spec:
      arn: arn:aws:s3:us-east-1:xxx:yyy
    
      eventTypes:
      - s3:ObjectCreated:*
      - s3:ObjectRemoved:*
    
      auth:
        credentials:
          accessKeyID:
            valueFromSecret:
              name: awscreds
              key: AWS_ACCESS_KEY_ID
          secretAccessKey:
            valueFromSecret:
              name: awscreds
              key: AWS_SECRET_ACCESS_KEY
    
      sink:
        ref:
          apiVersion: serving.knative.dev/v1
          kind: Service
          name: event-display
    
      adapterOverrides:
        resources:
          limits:
            cpu: "1"
            memory: 256Mi
          requests:
            cpu: 90m
            memory: 30Mi
    
    $ kubectl get deploy awss3source-sample -o yaml|grep -A6 resources:
            resources:
              limits:
                cpu: "1"
                memory: 45Mi
              requests:
                cpu: 90m
                memory: 30Mi
    
    $ kubectl get awss3source
    NAME     READY   REASON               QUEUE                                                        SINK                                               AGE
    sample   False   AdapterUnavailable   arn:aws:sqs:us-east-1:xxx:zzzz   http://event-display.s3-events.svc.cluster.local   51m
    

    Any help to fix the resource limits is highly appreciated.

    edit: formatting (@antoineco)

  • Create copyright header check script

    Create copyright header check script

    Will need a commit hook/github action to verify the copyright header corresponds to what is expected for the project including ensuring the copyright year is updated.

  • Creates an XML to JSON Transformation

    Creates an XML to JSON Transformation

    This PR introduces the Kind XMLToJSONTransformation It can be sent a Cloudevent containing XML data in the payload and will emit an event containing a JSON representation of said data.

    Example Cloudevent:

    curl --location --request POST 'http://localhost:8080' \
    --header 'Ce-Specversion: 1.0' \
    --header 'Ce-Type: test' \
    --header 'Ce-Id: 123123' \
    --header 'Ce-Source: ser' \
    --header 'Content-Type: application/xml' \
    --data-raw '<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Dont forget me this weekend</body></note>'
    

    Example Response Payload:

    {"note": {"from": "Jani", "heading": "Reminder", "body": "Dont forget me this weekend", "to": "Tove"}}
    
  • build(deps): bump github.com/tektoncd/pipeline from 0.40.2 to 0.43.0

    build(deps): bump github.com/tektoncd/pipeline from 0.40.2 to 0.43.0

    Bumps github.com/tektoncd/pipeline from 0.40.2 to 0.43.0.

    Release notes

    Sourced from github.com/tektoncd/pipeline's releases.

    Tekton Pipeline release v0.43.0 "British-Shorthair Jarvis"

    🎉 Larger Results, Custom Tasks Beta, V1 CRDs, Improved Retries, and Environment Variables in PodTemplate 🎉

    -Docs @ v0.43.0 -Examples @ v0.43.0

    Installation one-liner

    kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.43.0/release.yaml
    

    Attestation

    The Rekor UUID for this release is 24296fb24b8ad77ab5c2fccf5d8344332332d06ae5cc99d8daa86744b122e3a4a875b8842315d884

    Obtain the attestation:

    REKOR_UUID=24296fb24b8ad77ab5c2fccf5d8344332332d06ae5cc99d8daa86744b122e3a4a875b8842315d884
    rekor-cli get --uuid $REKOR_UUID --format json | jq -r .Attestation | jq .
    

    Verify that all container images in the attestation are in the release file:

    RELEASE_FILE=https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.43.0/release.yaml
    REKOR_UUID=24296fb24b8ad77ab5c2fccf5d8344332332d06ae5cc99d8daa86744b122e3a4a875b8842315d884
    

    Obtains the list of images with sha from the attestation

    REKOR_ATTESTATION_IMAGES=$(rekor-cli get --uuid "$REKOR_UUID" --format json | jq -r .Attestation | jq -r '.subject[]|.name + ":v0.43.0@sha256:" + .digest.sha256')

    Download the release file

    curl "$RELEASE_FILE" > release.yaml

    For each image in the attestation, match it to the release file

    for image in $REKOR_ATTESTATION_IMAGES; do printf $image; grep -q $image release.yaml && echo " ===> ok" || echo " ===> no match"; done

    Changes

    Features

    • :sparkles: TEP-0127-: Larger results using sidecar logs - Always enforce ReservedSidecarName validation (#5877) Always enforce ReservedSidecarName validation check regardless of what the results-from feature flag is set to.

    ... (truncated)

    Changelog

    Sourced from github.com/tektoncd/pipeline's changelog.

    Tekton Pipeline Releases

    Release Frequency

    Tekton Pipelines follows the Tekton community [release policy][release-policy] as follows:

    • Versions are numbered according to semantic versioning: vX.Y.Z
    • A new release is produced on a monthly basis
    • Four releases a year are chosen for long term support (LTS). All remaining releases are supported for approximately 1 month (until the next release is produced)
      • LTS releases take place in January, April, July and October every year
      • The first Tekton Pipelines LTS release will be v0.41.0 in October 2022
      • Releases happen towards the middle of the month, between the 13th and the 20th, depending on week-ends and readiness

    Tekton Pipelines produces nightly builds, publicly available on gcr.io/tekton-nightly.

    Transition Process

    Before release v0.41 Tekton Pipelines has worked on the basis of an undocumented support period of four months, which will be maintained for the releases between v0.37 and v0.40.

    Release Process

    Tekton Pipeline releases are made of YAML manifests and container images. Manifests are published to cloud object-storage as well as [GitHub][tekton-pipeline-releases]. Container images are signed by [Sigstore][sigstore] via [Tekton Chains][tekton-chains]; signatures can be verified through the [public key][chains-public-key] hosted by the Tekton Chains project.

    Further documentation available:

    • The Tekton Pipeline [release process][tekton-releases-docs]
    • [Installing Tekton][tekton-installation]
    • Standard for [release notes][release-notes-standards]

    Releases

    v0.43

    • Latest Release: [v0.43.0][v0-43-0] (2022-12-22) ([docs][v0-43-0-docs], [examples][v0-43-0-examples])
    • Initial Release: [v0.43.0][v0-43-0] (2023-12-22)
    • End of Life: 2023-04-22
    • Patch Releases: [v0.43.0][v0-43-0]

    ... (truncated)

    Commits
    • 45e6ed6 docs: fixing wrong matrix syntax in some places
    • 17c604e Bump github.com/containerd/containerd from 1.6.12 to 1.6.14
    • 0fb679a Bump github.com/jenkins-x/go-scm from 1.11.35 to 1.12.3
    • b994966 Add a PipelineRun Example for Creating a CustomRun
    • 0027f65 Bump golang.org/x/oauth2 from 0.2.0 to 0.3.0
    • 2ee148d TEP-0121: Reconciler Implementation
    • 60bc5bd ref: prompt for specific error fields
    • 330eef8 Bump golang.org/x/crypto from 0.3.0 to 0.4.0
    • 49fdbfb Added validation for forbidden env.
    • eb8bbac TEP-101 Add new field envs to PodTemplate.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Support for assume role

    Support for assume role

    We have an org that does not allow iam user access. We are allowed to access objects via the "assume role" https://docs.aws.amazon.com/sdk-for-go/api/aws/credentials/stscreds/

    While the following maybe a solution, it is not good enough, as this is only for EKS instances and not for instances outside of EKS. https://github.com/triggermesh/triggermesh/pull/1243

  • Privileged ports in use by brokers

    Privileged ports in use by brokers

    In testing the Redis broker, we found that it attempts to expose port 80 on the container even when the spec.broker.port which controls the service port is set to a different port. This may cause an issue in clusters where privileged ports (under 1024) are not bind-able with unprivileged users.

    In our cluster the broker port enters a crash loop with the following error: unable to start HTTP server: error while opening the inbound connection: listen tcp :80: bind: permission denied

    This issue was locally resolved by manually editing the security context of the pod and adding the following block to set port 80 as unprivileged:

    securityContext:
      sysctls:
      - name: net.ipv4.ip_unprivileged_port_start
        value: "80"
    

    This is officially considered as a safe namespaced sysctl since 1.22.

    This has also been raised to Kubernetes to set as a potential default- https://github.com/kubernetes/kubernetes/issues/102612

    Could the container port be changed to reflect the port selected in the CRD spec.broker.port so that we can control the exposed port on the pod?

    If not possible, could this be added to the pod templates for all resources that attempt to bind privileged ports as for security reasons we may not want to generally enable this within our clusters?

  • add proposed changes

    add proposed changes

    Signed-off-by: Noah Kreiger [email protected]

    This change proposes a switch to the logic in the tranformation, for handling a value that does NOT exist.

    In a normal coding / average coding flow, you would not usually append a nil value to a path, or the value would not default to the variable name. I find this to be both confusing, and cause issues in practice where you may want to perform routing based on whether a value exists or not, without defining an extra filter, and 2 transformations, etc.

    I didn't see any unit tests for this file?

    Scenarios:

    POST with

    {
        "detail": "noah",
        "source": "kreiger"
    }
    

    store -> $detail as $detail and $source as $source

    add -> $detail.$source -> results in noah.kreiger

    POST with

    {
        "detail": "noah"
    }
    

    store -> $detail as $detail and $source as $source

    add -> $detail.$source -> results in noah

    POST with

    {
        "detail": "noah",
        "source": ""
    }
    

    store -> $detail as $detail and $source as $source

    add -> $detail.$source -> results in noah.

    (still unsure if this should use the empty string, or treat it like a nil)

  • build(deps): bump golang.org/x/net from 0.2.0 to 0.4.0

    build(deps): bump golang.org/x/net from 0.2.0 to 0.4.0

    Bumps golang.org/x/net from 0.2.0 to 0.4.0.

    Commits
    • 1e63c2f http2: limit canonical header cache by bytes, not entries
    • 3247b5b go.mod: update golang.org/x dependencies
    • ecf7fda http2: deflake TestTransportMaxFrameReadSize
    • 0833b63 publicsuffix: embed table data
    • ecf091a publicsuffix: update table to latest list from publicsuffix.org
    • 2f8c3d1 http2: add Transport.MaxReadFrameSize configuration setting
    • 0e478a2 http2: add SETTINGS_HEADER_TABLE_SIZE support
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.1.0 to 1.2.0

    build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.1.0 to 1.2.0

    Bumps github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.1.0 to 1.2.0.

    Release notes

    Sourced from github.com/Azure/azure-sdk-for-go/sdk/azidentity's releases.

    sdk/resourcemanager/cognitiveservices/armcognitiveservices/v1.2.0

    1.2.0 (2022-10-20)

    Features Added

    • New field CallRateLimit in struct DeploymentProperties
    • New field Capabilities in struct DeploymentProperties
    • New field RaiPolicyName in struct DeploymentProperties
    • New field CallRateLimit in struct AccountModel
    • New field CallRateLimit in struct DeploymentModel

    sdk/azcore/v1.2.0

    1.2.0 (2022-11-04)

    Features Added

    • Added ClientOptions.APIVersion field, which overrides the default version a client requests of the service, if the client supports this (all ARM clients do).
    • Added package tracing that contains the building blocks for distributed tracing.
    • Added field TracingProvider to type policy.ClientOptions that will be used to set the per-client tracing implementation.

    Bugs Fixed

    • Fixed an issue in runtime.SetMultipartFormData to properly handle slices of io.ReadSeekCloser.
    • Fixed the MaxRetryDelay default to be 60s.
    • Failure to poll the state of an LRO will now return an *azcore.ResponseError for poller types that require this behavior.
    • Fixed a bug in runtime.NewPipeline that would cause pipeline-specified allowed headers and query parameters to be lost.

    Other Changes

    • Retain contents of read-only fields when sending requests.

    sdk/azidentity/v1.2.0

    1.2.0 (2022-11-08)

    Other Changes

    • This version includes all fixes and features from 1.2.0-beta.*

    sdk/azidentity/v1.2.0-beta.3

    1.2.0-beta.3 (2022-10-11)

    Features Added

    • ManagedIdentityCredential caches tokens in memory

    Bugs Fixed

    • ClientCertificateCredential sends only the leaf cert for SNI authentication

    sdk/azcore/v1.1.4

    1.1.4 (2022-10-06)

    Bugs Fixed

    • Don't retry a request if the Retry-After delay is greater than the configured RetryOptions.MaxRetryDelay.
    • runtime.JoinPaths: do not unconditionally add a forward slash before the query string

    ... (truncated)

    Commits
    • 0fbd371 Merge pull request #33 from jen20/virtual-network-client
    • c95e423 Add a client for Virtual Network management
    • af6985d Merge pull request #35 from ahmetalpbalkan/CreateBlockBlob
    • c99fb1d make block.Size int64, add CreateBlockBlob
    • 9abf8bf Merge pull request #28 from jen20/private-error-messages
    • c1f7c85 Merge pull request #24 from jf/codetweaks
    • 0d03132 Merge pull request #19 from jf/master
    • 24f03c1 Merge pull request #32 from jf/clean-currentTimeRfc1123Formatted
    • 30c4704 util.go: remove unused dateLayout from currentTimeRfc1123Formatted()
    • acc54a2 Merge pull request #29 from jen20/location-concatenation
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Knative Controller which emits cloud events when Knative Resources change state

Knative Sample Controller Knative sample-controller defines a few simple resources that are validated by webhook and managed by a controller to demons

Oct 2, 2021
Cloud Native Electronic Trading System built on Kubernetes and Knative Eventing

Ingenium -- Still heavily in prototyping stage -- Ingenium is a cloud native electronic trading system built on top of Kubernetes and Knative Eventing

Aug 29, 2022
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product âŖ English | įŽ€äŊ“中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

Oct 19, 2021
Hexagonal architecture paradigms, such as dividing adapters into primary (driver) and secondary (driven)Hexagonal architecture paradigms, such as dividing adapters into primary (driver) and secondary (driven)

authorizer Architecture In this project, I tried to apply hexagonal architecture paradigms, such as dividing adapters into primary (driver) and second

Dec 7, 2021
Enables a FaaS experience for Knative / Cloud Native Runtimes.

Function Buildpacks for Knative Enables a FaaS experience for Knative / Cloud Native Runtimes. Will soon extend func to create deployable functions vi

Nov 2, 2022
Knative function anonymousface for golang
Knative function anonymousface for golang

knative-function-anonymousface Usage $ curl -s -X POST -F [email protected] http://anonymousface.default.127.0.0.1.nip.io:8080 > out.jpg Installation

Nov 23, 2021
Knative Sample Controller

Knative Sample Controller Knative sample-controller defines a few simple resources that are validated by webhook and managed by a controller to demons

Jan 21, 2022
A best practices Go source project with unit-test and integration test, also use skaffold & helm to automate CI & CD at local to optimize development cycle

Dependencies Docker Go 1.17 MySQL 8.0.25 Bootstrap Run chmod +x start.sh if start.sh script does not have privileged to run Run ./start.sh --bootstrap

Apr 4, 2022
đŸ”Ĩ đŸ”Ĩ Open source cloud native security observability platform. Linux, K8s, AWS Fargate and more. đŸ”Ĩ đŸ”Ĩ
đŸ”Ĩ đŸ”Ĩ   Open source cloud native security observability platform. Linux, K8s, AWS Fargate and more. đŸ”Ĩ đŸ”Ĩ

CVE-2021-44228 Log4J Vulnerability can be detected at runtime and attack paths can be visualized by ThreatMapper. Live demo of Log4J Vulnerability her

Jan 1, 2023
Golang Integration Testing Framework For Kong Kubernetes APIs and Controllers.
Golang Integration Testing Framework For Kong Kubernetes APIs and Controllers.

Kong Kubernetes Testing Framework (KTF) Testing framework used by the Kong Kubernetes Team for the Kong Kubernetes Ingress Controller (KIC). Requireme

Dec 20, 2022
go-opa-validate is an open-source lib that evaluates OPA (open policy agent) policy against JSON or YAML data.
go-opa-validate is an open-source lib that evaluates OPA (open policy agent) policy against JSON or YAML data.

go-opa-validate go-opa-validate is an open-source lib that evaluates OPA (open policy agent) policy against JSON or YAML data. Installation Usage Cont

Nov 17, 2022
Bubbly is an open-source platform that gives you confidence in your continuous release process.
Bubbly is an open-source platform that gives you confidence in your continuous release process.

Bubbly Bubbly - Release Readiness in a Bubble Bubbly emerged from a need that many lean software teams practicing Continuous Integration and Delivery

Nov 29, 2022
KubeCube is an open source enterprise-level container platform
KubeCube is an open source enterprise-level container platform

KubeCube English | 中文文æĄŖ KubeCube is an open source enterprise-level container platform that provides enterprises with visualized management of Kuberne

Jan 4, 2023
The open source public cloud platform. An AWS alternative for the next generation of developers.
The open source public cloud platform. An AWS alternative for the next generation of developers.

M3O M3O is an open source public cloud platform. We are building an AWS alternative for the next generation of developers. Overview AWS was a first ge

Jan 2, 2023
A demo repository that shows CI/CD integration using DroneCI + ArgoCD + Kubernetes.
A demo repository that shows CI/CD integration using DroneCI + ArgoCD + Kubernetes.

CI/CD Demo This is the demo repo for my blog post. This tutorial shows how to build CI/CD pipeline with DroneCI and ArgoCD. In this demo, we use Drone

Oct 18, 2022
Prevent Kubernetes misconfigurations from ever making it (again 😤) to production! The CLI integration provides policy enforcement solution to run automatic checks for rule violations. Docs: https://hub.datree.io
Prevent Kubernetes misconfigurations from ever making it  (again 😤) to production! The CLI integration provides policy enforcement solution to run automatic checks for rule violations.  Docs: https://hub.datree.io

What is Datree? Datree helps to prevent Kubernetes misconfigurations from ever making it to production. The CLI integration can be used locally or in

Jan 1, 2023
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster
Open Source runtime tool which help to detect malware code execution and run time mis-configuration change on a kubernetes cluster

Kube-Knark Project Trace your kubernetes runtime !! Kube-Knark is an open source tracer uses pcap & ebpf technology to perform runtime tracing on a de

Sep 19, 2022
Planet Scale Robotics - Offload computation-heavy robotic operations to GPU powered world's first cloud-native robotics platform.

robolaunch ?? Planet Scale Robotics - Offload computation-heavy robotic operations to GPU powered world's first cloud-native robotics platform. robola

Jan 1, 2023