kptdev / kpt

Automate Kubernetes Configuration Editing
https://kpt.dev
Apache License 2.0
1.71k stars 227 forks source link

kpt live apply table output panic #3899

Open kriswuollett opened 1 year ago

kriswuollett commented 1 year ago
$ kpt version
1.0.0-beta.25
panic: interface conversion: interface {} is bool, not string

goroutine 370 [running]:
sigs.k8s.io/cli-utils/pkg/print/table.glob..func4({0x2c59860, 0xc000150008}, 0x28, {0x2c6f4f8?, 0xc0016dda00?})
        /go/pkg/mod/sigs.k8s.io/cli-utils@v0.34.0/pkg/print/table/columndefs.go:149 +0x40e
sigs.k8s.io/cli-utils/pkg/print/table.ColumnDef.PrintResource(...)
        /go/pkg/mod/sigs.k8s.io/cli-utils@v0.34.0/pkg/print/table/columndefs.go:47
sigs.k8s.io/cli-utils/pkg/print/table.(*BaseTablePrinter).PrintTable(0xc001648050, {0x2c62068, 0xc0027af950}, 0x12)
        /go/pkg/mod/sigs.k8s.io/cli-utils@v0.34.0/pkg/print/table/base.go:77 +0x3e5
sigs.k8s.io/cli-utils/pkg/printers/table.(*Printer).runPrintLoop.func1()
        /go/pkg/mod/sigs.k8s.io/cli-utils@v0.34.0/pkg/printers/table/printer.go:184 +0xda
created by sigs.k8s.io/cli-utils/pkg/printers/table.(*Printer).runPrintLoop
        /go/pkg/mod/sigs.k8s.io/cli-utils@v0.34.0/pkg/printers/table/printer.go:171 +0x20f

Resources related to keycloak-operator, here is what was progressing:

app-ns   Deployment/keycloak-operator              Pending       Current                 Available,Progressing                     4m      Deployment is available. Replicas: 1    
app-ns   └─ ReplicaSet/keycloak-operator-7d74b4b9                Current                 <None>                                    4m      ReplicaSet is available. Replicas: 1    
app-ns      └─ Pod/keycloak-operator-7d74b4b9cc-6                Current                 Initialized,Ready,ContainersReady,PodSch  4m      Pod is Ready   

And what seemed to not print completely:

app-ns   Keycloak/keycloak-app               Pending       Unknown  
droot commented 1 year ago

@kriswuollett is the manifest that you applied are available publicly ? it will help in reproducing it.

kriswuollett commented 1 year ago

Yes, the keycloak-operator is open source. I simply vendored it into my repo and added my own Kustomization setup:

third_party-keycloak_keycloak-operator.tar.gz

Which I then wrap up with Kpt (ignore wrong relative path since I left off the top level directory with my project name):

infra_keycloak-operator.tar.gz

I left out the kustomization that imports the operator base as it doesn't apply in any transforms at all, but here is the CRD used (with redacted as a placeholder for my project name):

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: keycloak-redacted
spec:
  instances: 1
  http:
    httpEnabled: true
  hostname:
    adminUrl: https://auth.redacted.local:15443
    strict: true
    strictBackchannel: false
  additionalOptions:
    - name: hostname-url
      value: https://auth.redacted.local:15443
    - name: hostname-strict-https
      value: "false"
  ingress:
    enabled: false
  db:
    vendor: postgres
    host: redacted-primary.redacted-data-postgres.svc
    usernameSecret:
      name: redacted-pguser-keycloak
      key: user
    passwordSecret:
      name: redacted-pguser-keycloak
      key: password