Code Monkey home page Code Monkey logo

czertainly-helm-charts's Introduction

CZERTAINLY-Helm-Charts

This repository is part of the commercial open-source project CZERTAINLY. You can find more information about the project at CZERTAINLY repository, including the contribution guide.

This repository contains Helm charts as part of the CZERTAINLY platform.

Quick start

Use the CZERTAINLY Chart to deploy the platform.

Structure of the charts

The charts are built in a way that you can install them separately, if you want. There is one global CZERTAINLY Chart that acts as umbrella chart for the platform. You can use it to install complete platform including selected sub-charts as components of the platform.

List of charts

Library

Core

API Gateways

Front ends

Connectors

Optional components

  • Keycloak Internal (internal Keycloak instance that can be used for authentication through OIDC and connect with various identity providers)

⚠️ For internal Keycloak to process request properly, it is important to have hostname of the CZERTAINLY platform included in the DNS resolver. For local testing, you can upgrade the CZERTAINLY chart with the --set apiGateway.hostAliases.resolveInternalKeycloak=true. This will resolve the internal Keycloak inside the cluster with proper IP address.

  • Utils Service (service that provides various utility functions for the platform)

Private containers

Some charts may use container images that are part of the private repositories. In this case it is necessary to provide reference to secret as part of the imagePullSecrets.

You can use the following command to create such secret in your namespace:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

For more information, see Create a Secret by providing credentials on the command line.

CZERTAINLY Dummy Root CA and certificates

The dummy certification authority is pre-built in this repository that can be used for development and testing purposes. You can find it in the dummy-certificates.

The dummy certificates are included by default in the values of the Helm charts. You can install platform with the dummy certificates and access its functions. Dummy CA can be replaced anytime.

Samples

You can find some samples in the samples.

czertainly-helm-charts's People

Contributors

3keyroman avatar jakub-moravek avatar katerinabzatkova avatar lubomirw avatar renovate[bot] avatar semik avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

czertainly-helm-charts's Issues

Security Policy violation Repository Administrators

This issue was automatically created by Allstar.

Security Policy Violation
Did not find any owners of this repository
This policy requires all repositories to have a user or team assigned as an administrator. A responsible party is required by organization policy to respond to security events and organization requests.

To add an administrator From the main page of the repository, go to Settings -> Manage Access.
(For more information, see https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories)

Alternately, if this repository does not have any maintainers, archive or delete it.


This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

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.


Warning

Renovate failed to look up the following dependencies: Failed to look up docker package docker.io/revomatico, Failed to look up docker package docker.io/bitnami, Failed to look up docker package docker.io/czertainly, Failed to look up docker package harbor.3key.company/czertainly, Failed to look up docker package docker.io/curlimages, Failed to look up docker package docker.io/openpolicyagent, Failed to look up docker package docker.io/3keycompany, Failed to look up docker package docker.io/.

Files affected: charts/api-gateway-kong/values.yaml, charts/auth-opa-policies/values.yaml, charts/auth-service/values.yaml, charts/common-credential-provider/values.yaml, charts/cryptosense-discovery-provider/values.yaml, charts/ct-logs-discovery-provider/values.yaml, charts/czertainly/values.yaml, charts/ejbca-ng-connector/values.yaml, charts/email-notification-provider/values.yaml, charts/fe-administrator/values.yaml, charts/hashicorp-vault-connector/values.yaml, charts/keycloak-internal/values.yaml, charts/keystore-entity-provider/values.yaml, charts/messaging-rabbitmq/values.yaml, charts/ms-adcs-connector/values.yaml, charts/network-discovery-provider/values.yaml, charts/pyadcs-connector/values.yaml, charts/scheduler-service/values.yaml, charts/software-cryptography-provider/values.yaml, charts/utils-service/values.yaml, charts/x509-compliance-provider/values.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/check_develop_charts.yml
  • actions/checkout v4
  • azure/setup-helm v4
  • actions/setup-python v5
  • helm/chart-testing-action v2.6.1
  • helm/kind-action v1.9.0
  • postgres 15
  • mailserver/docker-mailserver 13.3.1
.github/workflows/check_release_charts.yml
  • actions/checkout v4
  • azure/setup-helm v4
  • actions/setup-python v5
  • helm/chart-testing-action v2.6.1
  • helm/kind-action v1.9.0
  • postgres 15
  • mailserver/docker-mailserver 13.3.1
.github/workflows/release_develop.yml
  • actions/checkout v4
  • azure/setup-helm v4
  • actions/setup-python v5
  • helm/chart-testing-action v2.6.1
.github/workflows/release_develop_manually.yml
  • actions/checkout v4
  • azure/setup-helm v4
  • actions/setup-python v5
.github/workflows/release_master.yml
  • actions/checkout v4
  • azure/setup-helm v4
  • actions/setup-python v5
  • helm/chart-testing-action v2.6.1
.github/workflows/workflow_run_pruner.yml
  • actions/github-script v7
  • actions/github-script v7
helm-values
charts/api-gateway-haproxy/values.yaml
charts/api-gateway-kong/values.yaml
  • docker.io/revomatico 3.4.0-2
  • docker.io/bitnami 1.27.3
charts/auth-opa-policies/values.yaml
  • docker.io/czertainly 1.2.1
charts/auth-service/values.yaml
  • docker.io/czertainly 1.5.0
charts/common-credential-provider/values.yaml
  • docker.io/czertainly 1.3.3
charts/cryptosense-discovery-provider/values.yaml
  • harbor.3key.company/czertainly 1.4.0
charts/ct-logs-discovery-provider/values.yaml
  • docker.io/czertainly 1.0.0
charts/czertainly/values.yaml
  • docker.io/czertainly 2.13.0
  • docker.io/curlimages 8.1.1
  • docker.io/bitnami 1.27.3
  • docker.io/openpolicyagent 0.53.0-rootless
charts/ejbca-ng-connector/values.yaml
  • docker.io/czertainly 1.10.0
charts/email-notification-provider/values.yaml
  • docker.io/czertainly 1.1.0
charts/fe-administrator/values.yaml
  • docker.io/czertainly 2.13.0
charts/hashicorp-vault-connector/values.yaml
  • docker.io/czertainly 1.1.1
charts/keycloak-internal/values.yaml
  • docker.io/3keycompany 24.0.2-0
  • docker.io/czertainly 0.1.2
charts/keystore-entity-provider/values.yaml
  • docker.io/3keycompany 1.4.1
charts/messaging-rabbitmq/values.yaml
  • docker.io/ 3.12.1
charts/ms-adcs-connector/values.yaml
  • harbor.3key.company/czertainly 1.6.0
charts/network-discovery-provider/values.yaml
  • docker.io/czertainly 1.5.0
charts/pyadcs-connector/values.yaml
  • harbor.3key.company/czertainly 1.1.2
charts/scheduler-service/values.yaml
  • docker.io/czertainly 1.0.1
  • docker.io/curlimages 8.1.1
charts/software-cryptography-provider/values.yaml
  • docker.io/3keycompany 1.2.2
charts/utils-service/values.yaml
  • harbor.3key.company/czertainly 1.0.0
charts/x509-compliance-provider/values.yaml
  • docker.io/3keycompany 1.3.0
helmv3
charts/api-gateway-kong/Chart.yaml
charts/auth-opa-policies/Chart.yaml
charts/auth-service/Chart.yaml
charts/common-credential-provider/Chart.yaml
charts/cryptosense-discovery-provider/Chart.yaml
charts/ct-logs-discovery-provider/Chart.yaml
charts/czertainly/Chart.yaml
charts/ejbca-ng-connector/Chart.yaml
charts/email-notification-provider/Chart.yaml
charts/fe-administrator/Chart.yaml
charts/hashicorp-vault-connector/Chart.yaml
charts/keycloak-internal/Chart.yaml
charts/keystore-entity-provider/Chart.yaml
charts/messaging-rabbitmq/Chart.yaml
charts/ms-adcs-connector/Chart.yaml
charts/network-discovery-provider/Chart.yaml
charts/pyadcs-connector/Chart.yaml
charts/scheduler-service/Chart.yaml
charts/software-cryptography-provider/Chart.yaml
charts/utils-service/Chart.yaml
charts/x509-compliance-provider/Chart.yaml

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

securityContext hardening of charts

The securityContext should be defined for every chart that will provide hardening.
At least the following should be implemented as part of the securityContext:

  • disallow privileged = do not allow pods to specify securityContext.privileged or allowPrivilegeEscallation
  • disallow root user = define runAsNonRoot or runAsUser > 0 in securityContext
  • disallow sysctls = disallow changing kernel parameters of worker nodes = cannot define sysctls in securityContext
  • require read only root filesystem = pods must define, that their root filesystem (from docker image) is mounted readonly (readOnlyRootFilesystem: true in securityContext)

There should be options for ephemeral volume that is needed in some cases to have read-only filesystem.
Memory:

        - name: ephemeral
          emptyDir:
            sizeLimit: "1Mi"
            medium: "Memory"

Storage:

        - name: ephemeral
          ephemeral:
            volumeClaimTemplate:
              spec:
                accessModes: [ "ReadWriteOnce" ]
                # configurable option to select storage class
                storageClassName: "scratch-storage-class"
                resources:
                  requests:
                    storage: 1Mi

Security Policy violation SECURITY.md

This issue was automatically created by Allstar.

Security Policy Violation
Security policy not enabled.
A SECURITY.md file can give users information about what constitutes a vulnerability and how to report one securely so that information about a bug is not publicly visible. Examples of secure reporting methods include using an issue tracker with private issue support, or encrypted email with a published key.

To fix this, add a SECURITY.md file that explains how to handle vulnerabilities found in your repository. Go to https://github.com/CZERTAINLY/CZERTAINLY-Helm-Charts/security/policy to enable.

For more information, see https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository.


This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

support for custom CA certificates in core-deployment to be able to run behind intercepting HTTPS proxy

CZERTAINLY deployment fails when executed behind intercepting HTTPS proxy. Such proxies are using their own CA to sign certificates of visited sites. And unkown CA causes core-deployment to fail with error:

exited with 1: 140516034980680:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1919:
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.14/main: Permission denied
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/main: No such file or directory
140516034980680:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1919:
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.14/community: Permission denied
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/community: No such file or directory

that is caused by running apk add curl at line 130 of core-deployment and it fails because of unknown CA from intercepting HTTPS proxy.

Alpine Linux seams to be using same concept for installing custom CA certificates as Debian:

Hack used to verify solution

$ cat <<EOF > proxy-certificates.yaml
apiVersion: v1
kind: Secret
metadata:
  namespace: czertainly
  name: proxy-certificates
type: Opaque
stringData:
  proxy-certificates.pem: |+
    -----BEGIN CERTIFICATE-----
    MIIDfTCCAmWgAwIBAgIUV6fuZZIcGWpKtihdv7IaVt/m0C0wDQYJKoZIhvcNAQEL
    BQAwTjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxFDASBgNVBAoM
    C1NFTUlLT1ZBIENBMRQwEgYDVQQDDAtTRU1JS09WQSBDQTAeFw0yMzAxMDIxNTU5
    MDZaFw0zMjEyMzAxNTU5MDZaME4xCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21l
    LVN0YXRlMRQwEgYDVQQKDAtTRU1JS09WQSBDQTEUMBIGA1UEAwwLU0VNSUtPVkEg
    Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEuChlAGrzVAi0dbUz
    bX7DSnDw4+EWsybsVPnFInWIg2ZeuOWb2/DayGgYYfDbum6i0ZX+TrRnFHnxyvYV
    7Z341h/7pHMllj3uOybbQLvUFSDRIjc/+ZFY7hAVcDtflNINs7bNYlaH5M1GPELu
    13SOtDlqFO38U3gdjOMNc6bZlDOk9ZToLPPYapQRhrWbSlQNOqlTBiEqqu7X+ISe
    FrM1AHHc+1ju3mSvztrJGCZV6nyY8xEMxA0G3/j0sqf3oe9LuKuqcMS9fijVSu4O
    z3VilBReElDCZa07hv1sLTXe5gmJ4W7h6HB07/VwAXibZm/t4wph0YGT/uu5TBwS
    IC/NAgMBAAGjUzBRMB0GA1UdDgQWBBTirBfuwIBHdYS9SbxVhfn6KiZNUjAfBgNV
    HSMEGDAWgBTirBfuwIBHdYS9SbxVhfn6KiZNUjAPBgNVHRMBAf8EBTADAQH/MA0G
    CSqGSIb3DQEBCwUAA4IBAQAXpJeInwe33ZDlv9tzQ8AFu4S7N7tBvCJ2RBmpJEc9
    LnAL9LlXaSkzv+AMGcsEt2vvG0ypVhLMKZ7ygLVuKe5Bek2OODPaZka/hosxLCF/
    FzN/ckOQxWtopqqURdr7LMMj9D+5s/K2CTFGCb4SLRv1IXyJryN2tAZFFKMNZkYF
    zZ1Toq5lC6NW7yw8SifwVoTtDLGIVuTvMuTelqB3xZiLkpbqNmZORoM2mpvUF3PK
    Y+Cn6Q4Jxp27irjq7z1IVnUZGEBkxHMOdDMTBBwjOjPNy85mu6ZzUsazr2b2lVdT
    gc5SPYP/BufLw40tbh6ezrI+5zjnHUjRZbKxLXx3C9zB
    -----END CERTIFICATE-----
EOF
$ kubectl apply -f proxy-certificates.yaml
$ kubectl edit -n czertainly deployment/core-deployment
# add line 'cat /etc/ssl/certs/proxy-certificates.pem >> /etc/ssl/certs/ca-certificates.crt' into postStart like:
        lifecycle:
          postStart:
            exec:
              command:
              - sh
              - -c
              - |
                cat /etc/ssl/certs/proxy-certificates.pem >> /etc/ssl/certs/ca-certificates.crt &&
# mount proxy-certificates as volume:
        volumeMounts:
        ....
        - mountPath: /etc/ssl/certs/proxy-certificates.pem
          name: proxy-certificates
          subPath: proxy-certificates.pem
# define volume:
      volumes:
      ...
      - name: proxy-certificates
        secret:
          defaultMode: 420
          secretName: proxy-certificates

Downloaded image of alpine linux have in /etc/ssl/certs only ca-certificates.crt but after complete container creation the directory /etc/ssl/certs is fully populated with links to trusted certificates by their name and subject cashes with .0-n extensions. So I think it should be better follow Debian like approach described on StackOverflow.

Add Keystore Entity Provider sub-chart

Add support for deployment of Keystore Entity Provider.
This mean implementation of Keystore Entity Provider sub-chart and support in the czertainly umbrella chart.

CT logs discovery provider not visible

Hello,
I have installed 0.0.0 version of CZERTAINLY, in custom .yaml values I have also enabled ct logs provider with the following code:

ctLogsDiscoveryProvider:
enabled: true
image:
tag: develop-latest
pullPolicy: Always
logging:
level: "DEBUG"

I can not see the connector in connectors list though, even after opening CZERTAINLY in anonymous windows or after pressing CTRL + F5. But CT logs pod is running, can be seen on screenshot.
image

Best Regards,
Denys Doloban

Split repository and image name for charts

We can define global.image.registry parameter to globally change the docker registry for all charts.
However, the repository name is sill locally defined and in some case it needs to be changed also on the global level (for example when we maintain private docker registry with custom repositories/projects).

It would be helpful if the current image.repository parameter is split into image.repository and image.name. Then we can create global.image.repository that will be applied to all charts without need to write it specifically for all of them.

An example:

global:
  image:
    registry: ""
    repository: ""

image:
  # default registry name
  registry: docker.io
  repository: 3keycompany
  name: czertainly-core
  tag: 2.7.1

This will produce image as docker.io/3keycompany/czertainly-core:2.7.1

global:
  image:
    registry: myregistry.com
    repository: ""

image:
  # default registry name
  registry: docker.io
  repository: 3keycompany
  name: czertainly-core
  tag: 2.7.1

Will produce myregistry.com/3keycompany/czertainly-core:2.7.1

global:
  image:
    registry: myregistry.com
    repository: czertainly/project

image:
  # default registry name
  registry: docker.io
  repository: 3keycompany
  name: czertainly-core
  tag: 2.7.1

Will produce myregistry.com/czertainly/project/czertainly-core:2.7.1

Security Policy violation Dangerous Workflow

This issue was automatically created by Allstar.

Security Policy Violation
Project is out of compliance with Dangerous Workflow policy: dangerous workflow patterns detected

Rule Description
Dangerous Workflows are GitHub Action workflows that exhibit dangerous patterns that could render them vulnerable to attack. A vulnerable workflow is susceptible to leaking repository secrets, or allowing an attacker write access using the GITHUB_TOKEN. For more information about the particular patterns that are detected see the Security Scorecards Documentation for Dangerous Workflow.

Remediation Steps
Avoid the dangerous workflow patterns. See this post for information on avoiding untrusted code checkouts. See this document for information on avoiding and mitigating the risk of script injections.

Dangerous Patterns Found

  • .github/workflows/check_develop_charts.yml[51]:untrusted code checkout '${{ github.event.pull_request.head.ref }}'

Additional Information
This policy is drawn from Security Scorecards, which is a tool that scores a project's adherence to security best practices. You may wish to run a Scorecards scan directly on this repository for more details.


This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

Implement support for producing OpenTelemetry signals (traces, metrics, logs)

The OpenTelemtry is becoming a standard for observability.
CZERTAINLY Helm chart and its subcharts should support OTEL for collecting traces, metrics, and logs.

The scope of this issue is to start producing signals, when enabled. Collecting and using signals are out of scope of this issue.

OTEL support should be configurable on global and local (chart) level. When the global temeletry is enabled, all components that supports OTEL should enable it also.

Through the configuration, user should be able to select signals that should be produced and collected:

  • traces
  • metrics
  • logs

For example:

global:
  opentelemetry:
    enabled: true
    signals:
      traces:
        enabled: true
      metrics:
        enabled: true
      logs:
        enabled: true

Components should produce only signals that are configured (not true for logs, logs are by default produced in the system).

hostName change is not correctly propagated into Keycloak

Describe the bug

After changing hostName in values file, the new value is not correctly propagated to Keycloak.

To Reproduce
Steps to reproduce the behavior:

  1. Install CZERTAINLY with some hostname, for example czertainly11.local.
  2. Check everything is working including login with Keycloak.
  3. Change hostname to some new value, redeploy using helm.
  4. Try to login with username / password, ie. using Keycloak and see error Invalid parameter: redirect_uri. In logs of Keycloak is error message 2024-08-01 07:37:50,362 WARN [org.keycloak.events] (executor-thread-3) type="LOGIN_ERROR", realmId="1595e715-e7d0-417a-8df5-77bbdde4e8d8", clientId="kong", userId="null", ipAddress="192.168.1.12", error="invalid_redirect_uri", redirect_uri="https://czertainly-big.local/login/"

Expected behavior

I think it should be able to change hostname with change in values files for all components of CZERTAINLY.

Screenshots
Screenshot at 2024-08-01 09-47-40
Screenshot at 2024-08-01 09-47-48

Additional context

During startup Keycloak print in logs:

2024-08-01 07:27:08,410 INFO  [org.keycloak.exportimport.singlefile.SingleFileImportProvider] (main) Full importing from file /opt/keycloak/bin/../data/import/czertainly_realm.json
2024-08-01 07:27:09,306 INFO  [org.keycloak.exportimport.util.ImportUtils] (main) Realm 'CZERTAINLY' already exists. Import skipped
2024-08-01 07:27:09,318 INFO  [org.keycloak.exportimport.dir.DirImportProvider] (main) Importing from directory /opt/keycloak/bin/../data/import

I underand this that any change in in czertanly_realm.json is ignored after initial import.

Note on screenshot that all URLs have changed, except of the one for kong client. I think that instead of "rootUrl" : "https://{{ required "Hostname must be provided: .Values.czertainly.hostName" $hostName }}", we should use "rootUrl" : "${authBaseUrl}", which is used for example with clientID account-console.

I can test it and when prove be right I can prepare PR for this change. But not right now. If you agree, please assign me this issue and I will proceed.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Failed to decrypt field password. Please re-encrypt and try again.

Add support for init containers and sidecars

In some cases there is a need to add init and sidecar containers to deployment, however, the charts do not support this currently.

The proposed solution would be to add initContainers: [] and sidecarContainers: [] into global configuration of the umbrella chart to be distributed to all sub-charts, if needed. For example, when you need to collect and ship logs from all deployments, it will be handy, instead of adding the same containers to every chart.

The initContainers: [] and sidecarContainers: [] should be also defined as local parameters for every chart in case they should be defined only for some of them (specific set of deployments).

initContainers: [] and sidecarContainers: [] can contain definition of multiple containers and they should be completely defined and rendered as it is to deployments.

Make container registry configurable

Currently the image section in the values.yaml has the following structure:

image:
  repository: 3keycompany/czertainly-core
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: ""

However, it would be helpful to extend this configuration with registry in case the images are stored in different registry. Although the repository can contain also registry in its name, it would be more user friendly if the registry can be also configured as global parameter and set it for all subcharts.

The proposed change is to have:

image:
  # default registry name
  registry: docker.io
  repository: 3keycompany/czertainly-core
  # overrides the image tag whose default is the chart appVersion.
  tag: ""
  # the digest to be used instead of the tag
  digest: ""
  pullPolicy: IfNotPresent
  pullSecrets: []

Upgrade failed - invalid: spec.selector

The spec.selector is an immutable field of the deployment. When upgrading Helm chart with changed selectors, the upgrade will failed with the similar reason:

UPGRADE FAILED: cannot patch \"api-gateway-deployment\" with kind Deployment: Deployment.apps \"api-gateway-deployment\" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{\"app.kubernetes.io/instance\":\"czertainly-tlm\", \"app.kuberne...

The selectors for each chart should be updated to be consistent and avoid any changes in the future that may cause upgrade failed. The only solution for failed upgrade is to delete application and install it again.

Make utils-service available for API gateway

The utils-service can be deployed as part of the umbrella czertainly chart, however the configuration of the API gateway to access the utils-service is missing, therefor it cannot be access by remote clients, only by internal services.

The utils-service configuration should be available for the API gateway when enabled.

Add nodePorts to api-gateway-kong chart

The api-gateway-kong chart does support enabling service as NodePort, however, it does not provide parameters to configure nodePort.

Parameters and templates should be extended with 2 nodePorts:

  • for user service
  • for admin service (which is typically used for health checks)

keycloak installation isn't reliable

When installing on new on a new system, Keycloak is very often failing. api-gateway-deployment is missing:

...
      hostAliases:
      - ip: "10.43.116.241"
        hostnames:
        - "czertainly.local"

and user is getting error Kong Error. Even when values.yaml contains:

...
# this is needed only for KeyCloak
apiGateway:
  hostAliases:
    resolveInternalKeycloak: true
  trustedIps: "0.0.0.0/0,::/0"
...

Steps to reproduce

  • Take Virtual Appliance
  • Fully configure it to install all features of version 2.7.1
  • Remove last task, CZERTAINLY instalation, from file /etc/czertainly-ansible/roles/czertainly/tasks/main.yml
  • Exec complete instalation and wait for it to fail (because that last task is removed)
  • This is moment when you have clean, ready to use k8s sys
  • Enter system shell, exec /usr/sbin/helm --version=2.7.1 upgrade -i --reset-values --wait --timeout 10m --values=/root/install/czertainly-values.yaml --values=/root/install/czertainly-values.local.yaml czertainly-tlm oci://harbor.3key.company/czertainly-helm/czertainly -n czertainly --debug 2>&1 | tee /tmp/2.7.1-helm-install-ENABLED-keycloak.log
  • check if keycloak is working (loggin to https://czertainly.local/administrator/ without cert will fail if it is not working)
  • Enter system shell again and exec /usr/sbin/helm --version=2.8.0 upgrade -i --reset-values --wait --timeout 10m --values=/root/install/czertainly-values.yaml --values=/root/install/czertainly-values.local.yaml czertainly-tlm oci://harbor.3key.company/czertainly-helm/czertainly -n czertainly --debug 2>&1 | tee /tmp/2.8.0-helm-upgrade-ENABLED-keycloak.log
  • at this moment will be keycloak typically working

File /tmp/2.7.1-helm-install-ENABLED-keycloak.log is lacking section with hostAliases, so keyCloak is not working. File /tmp/2.8.0-helm-upgrade-ENABLED-keycloak.log typicaly has section hostAliases. And keycloak is working.

Notes

Add support to configure trusted IP address for proxy

The current kong proxy does not forward real hostname, protocol and port when the IP address of the source is not trusted. It has impact for example on generating ACME URLs.

It can be solved by allowing all IP addresses, which is not good security practice (although this the entry point and there is always firewall in front of the application).

Option to define list of trusted IP addresses, subnets, is vital for the configuration of the proxy.

Hooks do not have ImagePullPolicy defined in Helm Chart

Describe the bug
Hooks where public images are used do not have an imagePullPolicy defined in the Helm chart. Without it, it is not possible to use images stored in the internal registry, which is defined in the global parameters.

To Reproduce

  1. Set global.image.registry, repository, pullSecrets to own registry and repository
  2. Deploy app Czertainly to k8S cluster
  3. czertainly-add-hosts-to-deployment-job-xxxxx pod not started, because ErrPullImage
  4. Failed to pull image "registry_host:port/czertainly/kubectl:1.27.3": failed to pull and unpack image "registry_host:port/czertainly/kubectl:1.27.3": failed to resolve reference "registry_host:port/czertainly/kubectl:1.27.3": failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://registry_host/jwt/auth?scope=repository%3Aczertainly%2Fkubectl%3Apull&service=container_registry: 403 Forbidden

Expected behavior
A pull image will be performed and pod will start as with other microservices

Desktop (please complete the following information):

  • Czertainly ver. 2.11
  • OS: rocky 9.3
  • Helm ver. 3.10
  • k8s version: 1.28

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.