Skip to content

The documentation needs major clarifications #215

@spyesx

Description

@spyesx

I've followed the documentation, step by step (at https://artifacthub.io/packages/helm/smallstep/step-certificates) but I am so confused with the procedure. I think it needs a major clarification.

My end goal is to have a working ACME provider accessible from https://ca.step.example.com hosted on k8s.

I use a docker container to use step-cli.

# Open a shell in the container
docker run --rm  -it -v ./step:/home/step --name step-ca smallstep/step-ca bash

Then I generate the values.yaml file:

# Installing the chart
# https://artifacthub.io/packages/helm/smallstep/step-certificates#installing-the-chart
step ca init --helm > values.yaml

echo -n "password" | base64 > password-base64.txt

echo -n "password" | base64 > provisioner-password-base64.txt

First thing to not is this procedure creates a JWK provisioner by default. But how to Not an ACME one. Though, the info is here: https://smallstep.com/docs/step-ca/provisioners/#acme

# exit the container
exit

Now let's install the chart:

kubectl create namespace step

helm repo add smallstep https://smallstep.github.io/helm-charts/
helm repo update

helm install -f values.yaml \
    --set inject.secrets.ca_password="$(cat password-base64.txt)" \
    --set inject.secrets.provisioner_password="$(cat provisioner-password-base64.txt)" \
    step-certificates smallstep/step-certificates \
    --namespace step

The pod is stuck in a CrashLoopBackOff

kubectl get pods -n step
NAME                  READY   STATUS             RESTARTS        AGE
step-certificates-0   0/1     CrashLoopBackOff   6 (4m22s ago)   10m

And the log show an error:

kubectl logs step-certificates-0 -n step
badger 2025/04/14 14:24:32 INFO: All 0 tables opened in 0s
badger 2025/04/14 14:24:32 INFO: Replaying file id: 0 at offset: 0
badger 2025/04/14 14:24:32 INFO: Replay took: 91.945µs
error allocating terminal: open /dev/tty: no such device or address

Also, secrets are empty...

Am I missing something?

I have disabled the ingress as well and came with my own IngressRoute:

---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: step-certificates
  namespace: step
  annotations: 
    kubernetes.io/ingress.class: traefik-external
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`ca.step.example.com`)
      kind: Rule
      services:
        - name: step-certificates
          port: 443

Metadata

Metadata

Assignees

Labels

docsneeds triageWaiting for discussion / prioritization by team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions