Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
95cc375
Merge pull request #102 from Keyfactor/release-2.1
spbsoluble Sep 25, 2025
66479df
Merge pull request #104 from Keyfactor/release-2.1
spbsoluble Sep 26, 2025
cc1b823
cabundle configmap option impelmented, and update to go 1.25
HoogWater Feb 10, 2026
8fb5583
Update the docs to reflect configmap option
HoogWater Feb 11, 2026
d6241a8
Update README to include configmap option
HoogWater Feb 12, 2026
3260740
cabundle configmap option impelmented, and update to go 1.25
HoogWater Feb 10, 2026
1e38f36
Update the docs to reflect configmap option
HoogWater Feb 11, 2026
fde4819
Update README to include configmap option
HoogWater Feb 12, 2026
12f17a2
Merge branch 'cabundle_in_configmap' of https://github.com/HoogWater/…
HoogWater Feb 12, 2026
ae56ab8
fix duplicate go line in go.mod
HoogWater Feb 12, 2026
4d1a907
feat: pass spec.duration to EJBCA as end_time (fixes #128)
JohnAuth Mar 12, 2026
7e5cd20
chore: update e2e test documentation, support dynamic variable resolu…
irby Mar 24, 2026
9bf964a
Merge pull request #129 from John-D-B/feat/issue-128-duration-passthr…
irby Mar 24, 2026
a63f7f8
chore(test): add unit test for end_time logic
irby Mar 24, 2026
ab3272a
chore(deps): bump k8s.io/apimachinery from 0.34.1 to 0.35.1
dependabot[bot] Feb 16, 2026
7890b76
chore: bump Docker golang version to 1.25
irby Mar 24, 2026
ce7b3aa
chore(deps): bump github.com/onsi/gomega from 1.36.1 to 1.39.1
dependabot[bot] Feb 16, 2026
649712c
chore(deps): bump k8s.io/api from 0.34.1 to 0.35.1
dependabot[bot] Feb 16, 2026
f864757
chore: address linting issues
irby Mar 24, 2026
3872a57
fix: use v7 go-lint-action
irby Mar 24, 2026
d4301ef
Merge remote-tracking branch 'hoogwater/cabundle_in_configmap' into f…
irby Mar 24, 2026
89fd252
chore: fix lint issue
irby Mar 24, 2026
c2c9ed0
chore: address PR comments
irby Mar 24, 2026
256802b
chore: fix lint issues. Update Makefile commands
irby Mar 24, 2026
0e0caef
chore: check for CRD drift
irby Mar 24, 2026
1a0ff85
feat: add caBundleKey to issuer specification
irby Mar 24, 2026
548959f
chore: break the ca bundle and auth options retrieval into testable m…
irby Mar 24, 2026
2f9098c
feat: add logic to fetch caConfig from specified key
irby Mar 24, 2026
d5dc9ee
chore: update overview.md with updated links and information about ne…
irby Mar 25, 2026
4caf78f
fix: update CONTROLLER_TOOLS_VERSION
irby Mar 25, 2026
86eb6a3
Merge branch 'release-2.2' into feat/AB#77467/ca-bundle-configmap
irby Mar 25, 2026
4b55903
chore: update CHANGELOG and docs
irby Mar 25, 2026
126457d
fix: use CA trust bundle when connecting to OAuth
irby Mar 30, 2026
540bfbb
Update generated docs
Mar 30, 2026
11bce86
chore: use ejbca-go-client-sdk v1.1.0
irby Mar 31, 2026
c698b67
chore: update go.sum
irby Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,16 @@ jobs:
# Run Go linters
# https://github.com/golangci/golangci-lint-action
- name: Run linters
uses: golangci/golangci-lint-action@v6
uses: golangci/golangci-lint-action@v7
with:
version: v1.64.5
version: v2.4.0

- name: Regenerate CRDs
run: make generate manifests
- name: Check for CRD drift
run: |
git diff --compact-summary --exit-code || \
(echo; echo "Unexpected difference in directories after code generation. Run 'make generate manifests' and commit."; exit 1)

test:
name: Go Test
Expand Down
56 changes: 36 additions & 20 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,47 @@
run:
# timeout for analysis, e.g. 30s, 5m, default is 1m
timeout: 12m

issues:
exclude-dirs:
- testdata$
- test/mock
exclude-files:
- ".*\\.pb\\.go"

version: "2"
linters:
enable:
- bodyclose
- durationcheck
- errorlint
- goimports
- revive
- gocritic
- gosec
- misspell
- nakedret
- nolintlint
- revive
- unconvert
- unparam
- whitespace
- gocritic
- nolintlint

linters-settings:
revive:
# minimal confidence for issues, default is 0.8
confidence: 0.0
settings:
revive:
confidence: 0
rules:
- name: var-naming
disabled: true
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- .*\.pb\.go
- testdata$
- test/mock
- third_party$
- builtin$
- examples$
formatters:
enable:
- goimports
exclusions:
generated: lax
paths:
- .*\.pb\.go
- testdata$
- test/mock
- third_party$
- builtin$
- examples$
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# v2.2.0
## Features:
- Add support to specify a ConfigMap for CA trust bundles in Issuer / ClusterIssuer resources via the caBundleConfigMapName specification.
- Add support for specifying a key on a Secret / ConfigMap resource for the CA trust bundle via the `caBundleKey` specification on an Issuer / ClusterIssuer resource.
- On EJBCA 9.3.3 and above, if the certificate profile has "Allow Validity Override" enabled, the certificate's "Not After" will be set according to the `duration` property of the Certificate resource, otherwise it will be set according to the default validity configured in EJBCA for the relevant CA.
## Chores:
- Update README links with updated EJBCA links
- Update dependencies


# v2.1.3
## Chores:
- Build Docker image from Go 1.24 instead of 1.24.6
Expand Down
11 changes: 9 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ For information on how to contribute to EJBCA and related tools, see [EJBCA Cont
# EJBCA Cert Manager Issuer Contribution Guide

## Requirements
- Go (>= 1.24)
- golangci-lint (v1.64.5) ([installation notes](https://github.com/golangci/golangci-lint?tab=readme-ov-file#install-golangci-lint))
- Go (>= 1.25)
- golangci-lint (>= 2.4.0) ([installation notes](https://github.com/golangci/golangci-lint?tab=readme-ov-file#install-golangci-lint))

## Installing dependencies
Project dependencies can be installed by running the following:
Expand All @@ -28,6 +28,13 @@ The following command can be run to run the project unit tests:
go test -v ./...
```

## Running linters
The project uses golangci-lint to lint the codebase. The following command can be run to run the linters:

```bash
golangci-lint run
```

## Running end-to-end tests
A comprehensive end-to-end test suite is available to verify the issuer code works against cert-manager and an EJBCA instance.

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Comment thread
irby marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the manager binary
ARG GOIMAGE=golang:1.24
ARG GOIMAGE=golang:1.25
ARG BASEIMAGE=gcr.io/distroless/static:nonroot
ARG TARGETOS
ARG TARGETARCH
Expand Down
23 changes: 16 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ help: ## Display this help.
.PHONY: manifests
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
mv config/rbac/role.yaml config/rbac/manager_clusterrole.yaml

.PHONY: generate
generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
Expand All @@ -64,13 +65,16 @@ vet: ## Run go vet against code.
go vet ./...

.PHONY: test
test: manifests generate fmt vet envtest ## Run tests.
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $$(go list ./... | grep -v /e2e) -coverprofile cover.out
test: ## Run unit tests.
go test -v ./...

.PHONY: check
check: manifests generate fmt vet envtest test ## Run full project checks (lint, manifests, generate, tests)

# Utilize Kind or modify the e2e tests to load the image locally, enabling compatibility with other vendors.
.PHONY: test-e2e # Run the e2e tests against a Kind k8s instance that is spun up.
test-e2e:
go test ./test/e2e/ -v -ginkgo.v
cd test/e2e && . .env && ./run_tests.sh

.PHONY: lint
lint: golangci-lint ## Run golangci-lint linter & yamllint
Expand All @@ -95,7 +99,7 @@ run: manifests generate fmt vet ## Run a controller from your host.
# More info: https://docs.docker.com/develop/develop-images/build_enhancements/
.PHONY: docker-build
docker-build: ## Build docker image with the manager.
$(CONTAINER_TOOL) build -t ${IMG} . --build-arg="GOIMAGE=golang:1.24.6"
$(CONTAINER_TOOL) build -t ${IMG} . --build-arg="GOIMAGE=golang:1.25.6"

.PHONY: docker-push
docker-push: ## Push docker image with the manager.
Expand Down Expand Up @@ -167,9 +171,9 @@ GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION)

## Tool Versions
KUSTOMIZE_VERSION ?= v5.3.0
CONTROLLER_TOOLS_VERSION ?= v0.15.0
CONTROLLER_TOOLS_VERSION ?= v0.17.3
ENVTEST_VERSION ?= latest
GOLANGCI_LINT_VERSION ?= v1.64.5
GOLANGCI_LINT_VERSION ?= v2.4.0

.PHONY: kustomize
kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.
Expand All @@ -189,7 +193,12 @@ $(ENVTEST): $(LOCALBIN)
.PHONY: golangci-lint
golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
$(GOLANGCI_LINT): $(LOCALBIN)
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint,${GOLANGCI_LINT_VERSION})
@[ -f $(GOLANGCI_LINT) ] || { \
set -e; \
echo "Downloading golangci-lint $(GOLANGCI_LINT_VERSION)" ;\
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(LOCALBIN) $(GOLANGCI_LINT_VERSION) ;\
mv $(LOCALBIN)/golangci-lint $(GOLANGCI_LINT) ;\
}

# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
# $1 - target path with name of binary (ideally with version)
Expand Down
Loading
Loading