k8s-image-swapper Mirror images into your own registry and swap image references automatically.

Raiders of the Lost Ark

k8s-image-swapper

Mirror images into your own registry and swap image references automatically.


k8s-image-swapper is a mutating webhook for Kubernetes, downloading images into your own registry and pointing the images to that new location. It is an alternative to a docker pull-through proxy. The feature set was primarily designed with Amazon ECR in mind but may work with other registries.

Benefits

Using k8s-image-swapper will improve the overall availability, reliability, durability and resiliency of your Kubernetes cluster by keeping 3rd-party images mirrored into your own registry.

k8s-image-swapper will transparently consolidate all images into a single registry without the need to adjust manifests therefore reducing the impact of external registry failures, rate limiting, network issues, change or removal of images while reducing data traffic and therefore cost.

TL;DR:

  • Protect against:
  • Use in air-gaped environments without the need to change manifests
  • Reduce NAT ingress traffic/cost

Documentation

The documentation is available at https://estahn.github.io/k8s-image-swapper/.

Badges

Release Software License Build status Codecov branch Go Doc Conventional Commits Contributor Covenant

Stargazers over time

Stargazers over time

Owner
Enrico Stahn
Dad 👨🏼 , Rock Climber 🧗🏼‍♂️ , Software Engineer ⌨️ @hipagesgroup
Enrico Stahn
Comments
  • Use imagePullSecrets if required

    Use imagePullSecrets if required

    We currently rely on the registry being public. If imagePullSecrets is specified, this should be used for authentication.

    • [x] Image pull secrets from Pod ( see docs)
    • [x] Image pull secrets from ServiceAccount (see docs)
    • [ ] Use informer to monitor secret changes
  • chore(deps): update module k8s.io/apimachinery to v0.20.0

    chore(deps): update module k8s.io/apimachinery to v0.20.0

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | k8s.io/apimachinery | require | minor | v0.19.3 -> v0.20.0 |


    Release Notes

    kubernetes/apimachinery

    v0.20.0

    Compare Source

    v0.19.5

    Compare Source

    v0.19.4

    Compare Source


    Renovate configuration

    :date: Schedule: At any time (no schedule defined).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by WhiteSource Renovate. View repository job log here.

  • chore(deps): update module jmespath/go-jmespath to v0.4.0

    chore(deps): update module jmespath/go-jmespath to v0.4.0

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/jmespath/go-jmespath | require | minor | v0.3.0 -> v0.4.0 |


    Release Notes

    jmespath/go-jmespath

    v0.4.0

    Compare Source


    Renovate configuration

    :date: Schedule: At any time (no schedule defined).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by WhiteSource Renovate. View repository job log here.

  • chore(deps): update precommit hook thlorenz/doctoc to v2

    chore(deps): update precommit hook thlorenz/doctoc to v2

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | thlorenz/doctoc | repository | major | v1.4.0 -> v2.0.0 |


    Release Notes

    thlorenz/doctoc

    v2.0.0

    Compare Source


    Renovate configuration

    :date: Schedule: At any time (no schedule defined).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by WhiteSource Renovate. View repository job log here.

  • chore(deps): update precommit hook golangci/golangci-lint to v1.33.0

    chore(deps): update precommit hook golangci/golangci-lint to v1.33.0

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | golangci/golangci-lint | repository | minor | v1.32.2 -> v1.33.0 |


    Release Notes

    golangci/golangci-lint

    v1.33.0

    Compare Source

    Changelog

    9948153 DefaultExcludePatterns should only be used for specified linter (#​1494) 1ca232a Fix typos (#​1476) c68692e Missing sort-results in the docs (#​1514) 947dae1 Unknown linter breaks //nolint (#​1497) df2e9e2 Update godot to 1.3.0 (#​1498) 993337b Using upstrem goconst (#​1500) b90551c add new paralleltest linter (#​1503) b1755c1 build(deps): bump github.com/kyoh86/exportloopref from 0.1.7 to 0.1.8 (#​1501) 3fe444c build(deps): bump lodash from 4.17.15 to 4.17.19 in /.github/peril (#​1252) e8043b6 feat(release): Update metadata for golangci-lint-action (#​1491)


    Renovate configuration

    :date: Schedule: At any time (no schedule defined).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by WhiteSource Renovate. View repository job log here.

  • build(deps): bump actions/checkout from 2 to 3

    build(deps): bump actions/checkout from 2 to 3

    Bumps actions/checkout from 2 to 3.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.0

    • Updated to the node16 runtime by default
      • This requires a minimum Actions Runner version of v2.285.0 to run, which is by default available in GHES 3.4 or later.

    v2.4.0

    • Convert SSH URLs like org-<ORG_ID>@github.com: to https://github.com/ - pr

    v2.3.5

    Update dependencies

    v2.3.4

    v2.3.3

    v2.3.2

    Add Third Party License Information to Dist Files

    v2.3.1

    Fix default branch resolution for .wiki and when using SSH

    v2.3.0

    Fallback to the default branch

    v2.2.0

    Fetch all history for all tags and branches when fetch-depth=0

    v2.1.1

    Changes to support GHES (here and here)

    v2.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v3.0.0

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    v2 (beta)

    • Improved fetch performance
      • The default behavior now fetches only the SHA being checked-out
    • Script authenticated git commands
      • Persists with.token in the local git config
      • Enables your scripts to run authenticated git commands
      • Post-job cleanup removes the token
      • Coming soon: Opt out by setting with.persist-credentials to false
    • Creates a local branch

    ... (truncated)

    Commits

    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)
  • Filters cannot be evaulated

    Filters cannot be evaulated

    Hi, trying to setup a basic filter which is very similar to the one in the docs.

    Setting: jmsepath: "contains(container.image, 'some_repo_prefix')"

    Receiving: ERR Filter (idx 0) could not be evaluated. error="SyntaxError: Incomplete expression" filter=

  • chore(deps): update module containers/image/v5 to v5.9.0

    chore(deps): update module containers/image/v5 to v5.9.0

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | github.com/containers/image/v5 | require | minor | v5.8.1 -> v5.9.0 |


    Release Notes

    containers/image

    v5.9.0

    Compare Source

    • copy: check our assumptions about compression
    • Add a signedIdentity choice "type": "remapIdentity"
    • shortnames: error if there's no alias and no search registries

    Renovate configuration

    :date: Schedule: At any time (no schedule defined).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by WhiteSource Renovate. View repository job log here.

  • build(deps): bump actions/setup-python from 3.1.0 to 4.0.0

    build(deps): bump actions/setup-python from 3.1.0 to 4.0.0

    Bumps actions/setup-python from 3.1.0 to 4.0.0.

    Release notes

    Sourced from actions/setup-python's releases.

    v4.0.0

    What's Changed

    • Support for python-version-file input: #336

    Example of usage:

    - uses: actions/setup-python@v4
      with:
        python-version-file: '.python-version' # Read python version from a file
    - run: python my_script.py
    

    There is no default python version for this setup-python major version, the action requires to specify either python-version input or python-version-file input. If the python-version input is not specified the action will try to read required version from file from python-version-file input.

    • Use pypyX.Y for PyPy python-version input: #349

    Example of usage:

    - uses: actions/setup-python@v4
      with:
        python-version: 'pypy3.9' # pypy-X.Y kept for backward compatibility
    - run: python my_script.py
    
    • RUNNER_TOOL_CACHE environment variable is equal AGENT_TOOLSDIRECTORY: #338

    • Bugfix: create missing pypyX.Y symlinks: #347

    • PKG_CONFIG_PATH environment variable: #400

    • Added python-path output: #405 python-path output contains Python executable path.

    • Updated zeit/ncc to vercel/ncc package: #393

    • Bugfix: fixed output for prerelease version of poetry: #409

    • Made pythonLocation environment variable consistent for Python and PyPy: #418

    • Bugfix for 3.x-dev syntax: #417

    • Other improvements: #318 #396 #384 #387 #388

    Update actions/cache version to 2.0.2

    In scope of this release we updated actions/cache package as the new version contains fixes related to GHES 3.5 (actions/setup-python#382)

    Add "cache-hit" output and fix "python-version" output for PyPy

    This release introduces new output cache-hit (actions/setup-python#373) and fix python-version output for PyPy (actions/setup-python#365)

    The cache-hit output contains boolean value indicating that an exact match was found for the key. It shows that the action uses already existing cache or not. The output is available only if cache is enabled.

    ... (truncated)

    Commits
    • d09bd5e fix: 3.x-dev can install a 3.y version (#417)
    • f72db17 Made env.var pythonLocation consistent for Python and PyPy (#418)
    • 53e1529 add support for python-version-file (#336)
    • 3f82819 Fix output for prerelease version of poetry (#409)
    • 397252c Update zeit/ncc to vercel/ncc (#393)
    • de977ad Merge pull request #412 from vsafonkin/v-vsafonkin/fix-poetry-cache-test
    • 22c6af9 Change PyPy version to rebuild cache
    • 081a3cf Merge pull request #405 from mayeut/interpreter-path
    • ff70656 feature: add a python-path output
    • fff15a2 Use pypyX.Y for PyPy python-version input (#349)
    • 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)
  • build(deps): bump actions/setup-python from 2 to 3.1.0

    build(deps): bump actions/setup-python from 2 to 3.1.0

    Bumps actions/setup-python from 2 to 3.1.0.

    Release notes

    Sourced from actions/setup-python's releases.

    Support caching poetry dependencies and caching on GHES 3.5

    steps:
    - uses: actions/checkout@v3
    - name: Install poetry
      run: pipx install poetry
    - uses: actions/setup-python@v3
      with:
        python-version: '3.9'
        cache: 'poetry'
    - run: poetry install
    - run: poetry run pytest
    

    v3.0.0

    What's Changed

    Breaking Changes

    With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.

    This new major release removes support of legacy pypy2 and pypy3 keywords. Please use more specific and flexible syntax to specify a PyPy version:

    jobs:
      build:
        runs-on: ubuntu-latest
        strategy:
          matrix:
            python-version:
            - 'pypy-2.7' # the latest available version of PyPy that supports Python 2.7
            - 'pypy-3.8' # the latest available version of PyPy that supports Python 3.8
            - 'pypy-3.8-v7.3.8' # Python 3.8 and PyPy 7.3.8
        steps:
        - uses: actions/checkout@v2
        - uses: actions/setup-python@v3
          with:
            python-version: ${{ matrix.python-version }}
    

    See more usage examples in the documentation

    Update primary and restore keys for pip

    In scope of this release we include a version of python in restore and primary cache keys for pip. Besides, we add temporary fix for Windows caching issue, that the pip cache dir command returns non zero exit code or writes to stderr. Moreover we updated node-fetch dependency.

    Update actions/cache version to 1.0.8

    We have updated actions/cache dependency version to 1.0.8 to support 10GB cache upload

    Support caching dependencies

    ... (truncated)

    Commits

    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 alpine from 3.14 to 3.15.3

    build(deps): bump alpine from 3.14 to 3.15.3

    Bumps alpine from 3.14 to 3.15.3.

    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)
  • Fix data race issue on copyFn when there are multiple containers or initContainers

    Fix data race issue on copyFn when there are multiple containers or initContainers

    Fixes #421

    Moving the free variables container and targetImage to parameters of the function copyFn to avoid data race in an explicit way.

    Because of go compilation rules, it's also possible to declare a new variable like this to avoid data race in a more "hidden" way:

    localContainer := container
    
    copyFn :=  func() {
        if p.registryClient.ImageExists(targetImage) && localContainer.ImagePullPolicy != corev1.PullAlways {
            return
        }
        ...
    }
    

    We preferred the more explicit way of fixing this but feel free to suggest replacing it by a more readable implicit solution.

  • Data race issue during image copy with multiple containers

    Data race issue during image copy with multiple containers

    Hi,

    We encountered errors when running Pods with multiple initContainers with different imagePullPolicy values, where the value of the latest would overwrite the preceding ones. This then causes possible erroneous check conditions in the Mutate function here :

    copyFn := func() {
        if p.registryClient.ImageExists(targetImage) && container.ImagePullPolicy != corev1.PullAlways {
            return
        }
       ...
    

    The variable container that is used inside copyFn is overwritten at every iteration of the loop on containers/initContainers and when the goroutine (that runs copyFn) is eventually run, the value has (very likely) already changed because the following iterations have been computed first. The value in container.ImagePullPolicy then does not correspond to the image in targetImage, but rather to the image of the following/last container.

    Erroneous checks in the condition may, for example, lead to repeatedly try to copy images that are already present on the target because the last container has a pullPolicy or Always.

    This issue only applies to delayed and immediate modes where the image copy is done in background.

  • AWS ECR: `ecr:TagResource` seems required now

    AWS ECR: `ecr:TagResource` seems required now

    We started getting errors in our swaps w/ k8s-image-swapper around ecr:CreateRepository (seeing this in cloudtrail), because of the missing permission ecr:TagResource.

    Adding the ecr:TagResource action to our IAM policy for IRSA did fix the problem, so I think the docs just need updated.

  • Question regarding private repository URLs and ports.

    Question regarding private repository URLs and ports.

    We're using k8s-image-swapper in conjunction with GitLab CI. GitLab provides a dependency proxy service, basically a Docker pull-through cache for images used during builds. The registry URL starts with gitlab.com:443, which cannot be translated to an AWS ECR repository name (doesn't allow colons).

    Is this handled in the code (I don't seem to be able to find a registry normalization function) and if so what is a registry URL that includes a port translated into?

  • Add support for managed pulling from private ECRs

    Add support for managed pulling from private ECRs

    This PR adds the possibility to set additional references to ECRs as sources in the configuration file.

    This change allows to take advantage of the logic already in place to rotate ECR tokens and authenticate to private registries, but for pulling images from private ECRs in a context of multi ECR replication. The same AWS credentials as for the target ECR are used.

    Main changes:

    • Updated the configuration to add the field privateRegistries in source
    • Added a new attribute to the imagePullSecretProviders containing the registries' clients
    • Added a function to produce a dockerconfig in a JSON format from a registry client to merge with the authfile passed to Skopeo
    • Updated GetImagePullSecrets to include dockerconfigs from private registries to the image pull secrets from pods

    Notes:

    • imagePullSecrets from hooked Pods still have priority over the authentication via these default private registries
    • Changes do not impact the Helm chart and are compatible with previous version
    • Source private registries cannot authenticate with different credentials from the ones used by the target registry passed as environment variables
Kubernetes controller for backing up public container images to our own registry repository

image-clone-controller Kubernetes controller which watches applications (Deployment and DaemonSet) and "caches" the images (public container images) b

Aug 28, 2022
An image server which automatically optimize non webp and avif images to webp and avif images

go-imageserver go-imageserver is an image server which automatically optimize no

Apr 18, 2022
registry-tools: Prints image digest from a registry

registry-tools: Prints image digest from a registry

Dec 23, 2021
Hot-swap Kubernetes clusters while keeping your microservices up and running.

Okra Okra is a Kubernetes controller and a set of CRDs which provide advanced multi-cluster appilcation rollout capabilities, such as canary deploymen

Nov 23, 2022
A tool to check whether docker images exist in the remote registry.

Check Docker Image A tool to check whether docker images exist in the remote registry. Build project: go build -o check-image . Example usage: REGISTR

Jul 26, 2022
Write controller-runtime based k8s controllers that read/write to git, not k8s

Git Backed Controller The basic idea is to write a k8s controller that runs against git and not k8s apiserver. So the controller is reading and writin

Dec 10, 2021
K8s-cinder-csi-plugin - K8s Pod Use Openstack Cinder Volume

k8s-cinder-csi-plugin K8s Pod Use Openstack Cinder Volume openstack volume list

Jul 18, 2022
K8s-ingress-health-bot - A K8s Ingress Health Bot is a lightweight application to check the health of the ingress endpoints for a given kubernetes namespace.

k8s-ingress-health-bot A K8s Ingress Health Bot is a lightweight application to check the health of qualified ingress endpoints for a given kubernetes

Jan 2, 2022
K8s-go-structs - All k8s API Go structs

k8s-api go types Why? Its nice to have it all in a single package. . |-- pkg |

Jul 17, 2022
Returns which registry from the container image name

Returns which registry from the container image name

Jan 23, 2022
Common Image Registry for Testcontainers-Go
Common Image Registry for Testcontainers-Go

Testcontainers-Go Common Image Registry Common Image Registry for Testcontainers-Go Prerequisites Go >= 1.16 Install go get github.com/nhatthm/testcon

Dec 15, 2022
:recycle: Now you can easily rollback to previous deployed images whatever you want on k8s environment

EasyRollback EasyRollback is aim to easy rollback to previous images that deployed on k8s environment Installation You should have go installation fir

Dec 24, 2022
A Kubernetes Mutating Webhook to automatically re-point pod images to mirrors

kubernetes-mimic Kubernetes Mimic is a Mutating Webhook that will watch for pod creation and update events in a Kubernetes cluster and automatically a

Nov 22, 2022
A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s.
A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s.

A Kubernetes Operator, that helps DevOps team accelerate their journey into the cloud and K8s. OAM operator scaffolds all of the code required to create resources across various cloud provides, which includes both K8s and Non-K8s resources

Nov 30, 2021
Vilicus is an open source tool that orchestrates security scans of container images(docker/oci) and centralizes all results into a database for further analysis and metrics.
Vilicus is an open source tool that orchestrates security scans of container images(docker/oci) and centralizes all results into a database for further analysis and metrics.

Vilicus Table of Contents Overview How does it work? Architecture Development Run deployment manually Usage Example of analysis Overview Vilicus is an

Dec 6, 2022
Dgraph Backup and Restore (cloud). Read-only mirror.

dgbrx Dgraph Backup and Restore X dgbrx is a Go commandline tool which helps to do a backup, restore or clean on a Dgraph Cloud (aka slash / managed)

Oct 28, 2021
Defalyzer: A cross-platform software that focuses on defacement analyzing and mirror tracking
Defalyzer: A cross-platform software that focuses on defacement analyzing and mirror tracking

Project Defalyzer is a cross-platform software that focuses on defacement analyz

Jul 26, 2022
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers
A k8s vault webhook is a Kubernetes webhook that can inject secrets into Kubernetes resources by connecting to multiple secret managers

k8s-vault-webhook is a Kubernetes admission webhook which listen for the events related to Kubernetes resources for injecting secret directly from sec

Oct 15, 2022
A helm v3 plugin to adopt existing k8s resources into a new generated helm chart

helm-adopt Overview helm-adopt is a helm plugin to adopt existing k8s resources into a new generated helm chart, the idea behind the plugin was inspir

Dec 15, 2022