Giter VIP home page Giter VIP logo

helm-mutualize's Introduction

Kubernetes HELM chart for mutualize applications.

Introduction

Provide mutualize applications with Kubernetes, currently the print service and the TileCloud-chain service.

Infrastructure components

This chart will use:

  • Shared config manager
  • Operator shared config
  • Operator GitHub webhook (indirectly)

Data workflow

Main data workflow is:

  • The following source objects (one for the print and one for TileCloud-chain):
    apiVersion: camptocamp.com/v2
    kind: SharedConfigSource
    metadata:
      name: test-geomapfish-test-print
      labels: ...
        mutualize-sharedconfig: 'true'
    spec:
      name: test-print
      environment: (int|prod)
      content: |
        type: git
        repo: [email protected]:camptocamp/test.git
        branch: master
        key: admin1234
        sub_dir: print/print-apps/test
        tags:
          - print
        template_engines:
          - type: shell
            environment_variables: true
            data:
              - name: "TEST"
                value: "test"
    ---
    apiVersion: camptocamp.com/v2
    kind: SharedConfigSource
    metadata:
      name: test-geomapfish-test-tilecloudchain
      labels: ...
        mutualize-sharedconfig: 'true'
    spec:
      name: test-tilecloudchain
      environment: (int|prod)
      content: |
        type: git
        repo: [email protected]:camptocamp/test.git
        branch: master
        key: admin1234
        sub_dir: tilegeneration
        tags:
          - print
        template_engines:
          - type: shell
            environment_variables: true
            data:
              - name: "TEST"
                value: "test"
  • And the receptor object:
    apiVersion: camptocamp.com/v2
    kind: SharedConfigConfig
    metadata:
      name: test-mutualize-config
      labels: ...
    spec:
      environment: (int|prod)
      matchLabels:
        mutualize-sharedconfig: 'true'
      property: sources
      configmapName: shared_config_manager.yaml
  • Will create the main config for the shared config manager as a config map, used here: https://github.com/camptocamp/helm-mutualized/blob/master/templates/shared-config-deployment.yaml#L42-L44
  • The shared config manager will get the data from GitHub and provide the configuration to the print ant to TileCloud-chain according to the tags.

The TileCloud also need the hosts config:

  • The following object:

    apiVersion: camptocamp.com/v2
    kind: SharedConfigSource
    metadata:
      name: test-geomapfish-test-tilecloudchain-hosts-main
      labels: ...
        mutualize-tilecloudchain-hosts: 'true'
    spec:
      name: test-tilecloudchain
      environment: (int|prod)
      content:
        demo.camptocamp.com: /etc/mutualize-configs/test-tilecloudchain/config.yaml
  • And the receptor object:

    apiVersion: camptocamp.com/v2
    kind: SharedConfigConfig
    metadata:
      name: test-mutualize-tilecloud-hosts
      labels: ...
    spec:
      environment: (int|prod)
      matchLabels:
        mutualize-tilecloudchain-hosts: 'true'
      configmap_name: hosts.yaml
  • Will create the hosts config for TileCloud-chain as a config map, used here: https://github.com/camptocamp/helm-mutualized/blob/master/templates/tilecloudchain-deployment.yaml#L63-L65

Update workflow

  • The following objects:
    apiVersion: camptocamp.com/v2
    kind: GitHubWebhook
    metadata:
      name: test-geomapfish-test-print
      labels: ...
    spec:
      environment: (int|prod)
      repository: camptocamp/test
      # Should be something like https://config.mutualize(-int)?.camptocamp.com/1/refresh/test-print/
      url: See above
      contentType: json
    ---
    apiVersion: camptocamp.com/v2
    kind: GitHubWebhook
    metadata:
      name: test-geomapfish-test-tilecloudchain
      labels: ...
    spec:
      environment: (int|prod)
      repository: camptocamp/test
      # Should be something like https://config.mutualize.camptocamp.com/1/refresh/test-tilecloudchain/
      url: See above
      contentType: json
  • Will create a GitHub webhook to trigger the shared config manager updates.

Schema documentation

Documentation based on the schema defined in values.md.

Contributing

Install the pre-commit hooks:

pip install pre-commit
pre-commit install --allow-missing-config

helm-mutualize's People

Contributors

sbrunner avatar renovate[bot] avatar dependabot[bot] avatar renovate-bot avatar geo-ghci-int[bot] avatar

Stargazers

 avatar

Watchers

Gabriel Roldan avatar Christian Kaenzig avatar  avatar James Cloos avatar Jose Macchi avatar Alexandre Fayolle avatar  avatar Yannick Payot avatar Maurer Luc avatar  avatar Julien Acroute avatar Alexian Masson avatar  avatar  avatar Maeva Londero avatar  avatar

helm-mutualize's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Package lookup failures

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • Lock file maintenance

Warning

Renovate failed to look up the following dependencies: Failed to look up helm package bitnami/redis.

Files affected: versions.yaml


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/delete-old-workflows-run.yaml
  • MajorScruffy/delete-old-workflow-runs v0.3.0
  • ubuntu 22.04
.github/workflows/main.yaml
  • actions/checkout v4
  • camptocamp/initialise-gopass-summon-action v2
  • actions/cache v4
  • actions/upload-artifact v4
  • azure/setup-helm v4
  • actions/github-script v7
  • ubuntu 22.04
.github/workflows/pr-checks.yaml
  • actions/checkout v4
  • ubuntu 22.04
.github/workflows/pull-request-automation.yaml
  • actions/github-script v7
  • actions/github-script v7
  • actions/github-script v7
  • actions/github-script v7
  • ubuntu 22.04
helm-values
values.yaml
  • bitnami/jmx-exporter 0.20.0
helmv3
Chart.yaml
  • common 1.0.1
html
home/html/index.html
  • bootstrap 5.3.3@sha512-jnSuA4Ss2PkkikSOLtYs8BlYIeeIK1h99ty4YfvRPAlzr377vr3CXDb7sb7eEEBYjDtcYj+AjBH3FLv5uSJuXg==
  • font-awesome 6.5.2@sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==
kubernetes
templates/home-deployment.yaml
  • Deployment apps/v1
templates/home-pdb.yaml
  • PodDisruptionBudget policy/v1
templates/print-deployment.yaml
  • Deployment apps/v1
templates/print-pdb.yaml
  • PodDisruptionBudget policy/v1
templates/redirect-deployment.yaml
  • Deployment apps/v1
templates/redirect-pdb.yaml
  • PodDisruptionBudget policy/v1
templates/role.yaml
  • Role rbac.authorization.k8s.io/v1
templates/rolebinding.yaml
  • RoleBinding rbac.authorization.k8s.io/v1
templates/shared-config-deployment.yaml
  • Deployment apps/v1
templates/tilecloudchain-deployment.yaml
  • Deployment apps/v1
templates/tilecloudchain-pdb.yaml
  • PodDisruptionBudget policy/v1
templates/tilecloudchain-slave-deployment.yaml
  • Deployment apps/v1
pip_requirements
ci/requirements.txt
  • c2cciutils ==1.6.18
  • pre-commit ==3.7.0
  • setuptools >=65.5.1
pre-commit
.pre-commit-config.yaml
  • sbrunner/jsonschema2md 1.2.0
  • pre-commit/pre-commit-hooks v4.6.0
  • sbrunner/hooks 1.0.0
  • camptocamp/helm-common 2.0.0
  • codespell-project/codespell v2.3.0
  • pre-commit/mirrors-prettier v3.1.0
  • shellcheck-py/shellcheck-py v0.10.0.1
  • jumanjihouse/pre-commit-hooks 3.0.0
  • python-jsonschema/check-jsonschema 0.28.2
  • sirwart/ripsecrets v0.1.8
  • PyCQA/autoflake v2.3.1
  • asottile/pyupgrade v3.15.2
  • PyCQA/isort 5.13.2
  • psf/black 24.4.2
  • sbrunner/jsonschema-validator 0.1.0
regex
.pre-commit-config.yaml
  • prettier 3.3.0
  • prettier-plugin-sh 0.14.0
  • prettier-plugin-toml 2.0.1
  • pyjson5 1.6.6
versions.yaml
  • camptocamp/operator-shared-config-manager 0.6.3
  • camptocamp/operator-github-webhook 0.5.2
  • bitnami/redis 17.14.1
ci/config.yaml
  • camptocamp/c2cciutils 1.6.18

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.