projectcapsule / capsule

Multi-tenancy and policy-based framework for Kubernetes.
https://capsule.clastix.io
Apache License 2.0
1.51k stars 150 forks source link

Helm install (version 0.0.17) does not complete #232

Closed ludusrusso closed 3 years ago

ludusrusso commented 3 years ago

Bug description

Helm install on chart versions 0.0.16 and 0.0.17 does not complete. The container manager in deployment capsule-controller-manager will fail.

The new version of chart 0.0.16 and 0.0.17 have introduced two new command line options allow-ingress-hostname-collision and allow-tenant-ingress-hostnames-collision that are not available in the docker build used as default quay.io/clastix/capsule:v0.0.4.

How to reproduce

Steps to reproduce the behavior:

  1. Create a kind cluster
  2. Install capsule with helm install capsule clastix/capsule --version=0.0.17 -n capsule-system

Expected behavior

The container shoud work

Logs

❯ k logs -f capsule-controller-manager-8698d55744-wncjm manager
flag provided but not defined: -allow-ingress-hostname-collision
Usage of /manager:
  -capsule-user-group string
        Name of the group for capsule users (default "capsule.clastix.io")
  -enable-leader-election
        Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.
  -force-tenant-prefix
        Enforces the Tenant owner, during Namespace creation, to name it using the selected Tenant name as prefix, separated by a dash. This is useful to avoid Namespace name collision in a public CaaS environment.
  -kubeconfig string
        Paths to a kubeconfig. Only required if out-of-cluster.
  -metrics-addr string
        The address the metric endpoint binds to. (default ":8080")
  -protected-namespace-regex string
        Disallow creation of namespaces, whose name matches this regexp
  -version
        Print the Capsule version and exit
  -zap-devel
        Development Mode defaults(encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). Production Mode defaults(encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error)
  -zap-encoder value
        Zap log encoding (one of 'json' or 'console')
  -zap-log-level value
        Zap Level to configure the verbosity of logging. Can be one of 'debug', 'info', 'error', or any integer value > 0 which corresponds to custom debug levels of increasing verbosity
  -zap-stacktrace-level value
        Zap Level at and above which stacktraces are captured (one of 'info', 'error').
prometherion commented 3 years ago

Definitely a bug, and I got already a suspect causing the issue: I aligned the Helm chart upon the new allow ingress hostname collision that will be shipped starting from 0.0.5.

According to the current Helm Chart release, we should avoid adding new program arguments until we bump up the new image version.

I think we can remove the option to fix the 0.0.17 Helm chart version: this is a good first issue and help wanted request! 😅

ludusrusso commented 3 years ago

Also the 0.0.16 has the same issue :D I can handle if it's ok for you!

prometherion commented 3 years ago

Ok, this is even worse but since we're documenting this, we could go for a newer hotfix version: shit happens!

Oh, and thanks for your availability: the issue is yours!