Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: garm v0.1.5 #158

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
21728bf
feat(controller-info): reflect controller-info, update urls via api
rafalgalaw Aug 13, 2024
334af77
feat(endpoint): implement endpoint api
rafalgalaw Aug 14, 2024
2219149
feat(githubcredentials): implement credentials api
rafalgalaw Aug 14, 2024
e92c85a
fixes
rafalgalaw Aug 15, 2024
cdca632
fix(controller): organization tests
rafalgalaw Aug 20, 2024
ace0000
fix(controller): enterprise tests
rafalgalaw Aug 20, 2024
f5255b2
fix(controller): repository tests
rafalgalaw Aug 20, 2024
4982bcd
fix(controller): pool tests
rafalgalaw Aug 20, 2024
c573615
fix: linter
rafalgalaw Aug 20, 2024
b628526
fix(api): rename endpoint crd to github_endpoint crd
rafalgalaw Aug 25, 2024
37a957a
feat(test): add github_endpoint reconciler tests
rafalgalaw Aug 26, 2024
f93d5ae
fix: garm-server-config tests
rafalgalaw Sep 10, 2024
72170c6
feat: add poolBalancerType field to enterprise, org and repo
rafalgalaw Sep 10, 2024
e5b59b4
feat: introduce v1beta1 api type
rafalgalaw Sep 16, 2024
1707143
feat: add conversion generator
bavarianbidi Sep 17, 2024
4a65115
feat: prepare for conversion code generation
bavarianbidi Sep 17, 2024
3e5c844
feat: add generated conversion code
bavarianbidi Sep 17, 2024
4231a28
feat: add example manual conversion implementation
bavarianbidi Sep 17, 2024
10fbf08
feat: add manual conversions for enterprise, org and repo
rafalgalaw Sep 30, 2024
3e1b1fb
fix: v1beta1 tests
rafalgalaw Sep 30, 2024
805004b
fix: remove pool adoption and always create pool
rafalgalaw Oct 1, 2024
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
14 changes: 13 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,12 @@ help: ## Display this help.
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

.PHONY: conversion
conversion: conversion-gen
$(CONVERSION_GEN) --go-header-file hack/boilerplate.go.txt --output-file zz_generated.conversion.go github.com/mercedes-benz/garm-operator/api/v1alpha1

.PHONY: generate
generate: controller-gen mockgen ## Generate mock client and code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
generate: controller-gen conversion mockgen ## Generate mock client and code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
go generate ./...

Expand Down Expand Up @@ -162,6 +166,7 @@ $(LOCALBIN):
KUBECTL ?= kubectl
KUSTOMIZE ?= $(LOCALBIN)/kustomize
CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen
CONVERSION_GEN ?= $(LOCALBIN)/conversion-gen
ENVTEST ?= $(LOCALBIN)/setup-envtest
GOLANGCI_LINT ?= $(LOCALBIN)/golangci-lint
MOCKGEN ?= $(LOCALBIN)/mockgen
Expand All @@ -176,6 +181,7 @@ KIND ?= $(LOCALBIN)/kind
## Tool Versions
KUSTOMIZE_VERSION ?= v5.0.1
CONTROLLER_TOOLS_VERSION ?= v0.15.0
CONVERSION_GEN_VERSION ?= v0.30.5
GOLANGCI_LINT_VERSION ?= v1.59.1
MOCKGEN_VERSION ?= v0.4.0
GORELEASER_VERSION ?= v1.21.0
Expand All @@ -200,6 +206,12 @@ $(CONTROLLER_GEN): $(LOCALBIN)
test -s $(LOCALBIN)/controller-gen && $(LOCALBIN)/controller-gen --version | grep -q $(CONTROLLER_TOOLS_VERSION) || \
GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION)

.PHONY: conversion-gen
conversion-gen: $(CONVERSION_GEN) ## Download conversion-gen locally if necessary. If wrong version is installed, it will be overwritten.
$(CONVERSION_GEN): $(LOCALBIN)
test -s $(LOCALBIN)/conversion-gen || \
GOBIN=$(LOCALBIN) go install k8s.io/code-generator/cmd/conversion-gen@$(CONVERSION_GEN_VERSION)

.PHONY: envtest
envtest: $(ENVTEST) ## Download envtest-setup locally if necessary.
$(ENVTEST): $(LOCALBIN)
Expand Down
101 changes: 99 additions & 2 deletions PROJECT
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# SPDX-License-Identifier: MIT

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add PROJECT to the list of generated files in the license-scanner-script:
https://github.com/mercedes-benz/garm-operator/blob/main/hack/verify-license.sh#L22

# Code generated by tool. DO NOT EDIT.
# This file is used to track the info used to scaffold your project
# and allow the plugins properly work.
Expand Down Expand Up @@ -71,4 +69,103 @@ resources:
kind: Runner
path: github.com/mercedes-benz/garm-operator/api/v1alpha1
version: v1alpha1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: mercedes-benz.com
group: garm-operator
kind: GarmServerConfig
path: github.com/mercedes-benz/garm-operator/api/v1alpha1
version: v1alpha1
- api:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new API groups should be in v1beta1

crdVersion: v1
namespaced: true
controller: true
domain: mercedes-benz.com
group: garm-operator
kind: GitHubEndpoint
path: github.com/mercedes-benz/garm-operator/api/v1alpha1
version: v1alpha1
- api:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new API groups should be in v1beta1

crdVersion: v1
namespaced: true
controller: true
domain: mercedes-benz.com
group: garm-operator
kind: GitHubCredentials
path: github.com/mercedes-benz/garm-operator/api/v1alpha1
version: v1alpha1
- api:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new API groups should be in v1beta1

crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Enterprise
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Organization
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Repository
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Pool
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Runner
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: Image
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: GitHubEndpoint
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: GitHubCredentials
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
- api:
crdVersion: v1
namespaced: true
domain: mercedes-benz.com
group: garm-operator
kind: GarmServerConfig
path: github.com/mercedes-benz/garm-operator/api/v1beta1
version: v1beta1
version: "3"
5 changes: 4 additions & 1 deletion Tiltfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ deploy_cert_manager(
# the manager binary and the dlv debug port will be exposed
#
# for more details, please read the DEVELOPMENT.md
mode = 'local'
mode = 'local'

# kustomize overlays
templated_yaml = kustomize('config/overlays/' + mode)
Expand All @@ -36,6 +36,9 @@ k8s_resource(
'pools.garm-operator.mercedes-benz.com:customresourcedefinition',
'runners.garm-operator.mercedes-benz.com:customresourcedefinition',
'repositories.garm-operator.mercedes-benz.com:customresourcedefinition',
'garmserverconfigs.garm-operator.mercedes-benz.com:customresourcedefinition',
'githubcredentials.garm-operator.mercedes-benz.com:customresourcedefinition',
'githubendpoints.garm-operator.mercedes-benz.com:customresourcedefinition',
'garm-operator-controller-manager:serviceaccount',
'garm-operator-leader-election-role:role',
'garm-operator-manager-role:clusterrole',
Expand Down
2 changes: 2 additions & 0 deletions api/v1alpha1/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// +k8s:conversion-gen=github.com/mercedes-benz/garm-operator/api/v1beta1
package v1alpha1
23 changes: 23 additions & 0 deletions api/v1alpha1/enterprise_conversion.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package v1alpha1

import (
"github.com/mercedes-benz/garm-operator/api/v1beta1"
v1 "k8s.io/api/core/v1"
apiconversion "k8s.io/apimachinery/pkg/conversion"
)

func Convert_v1alpha1_EnterpriseSpec_To_v1beta1_EnterpriseSpec(in *EnterpriseSpec, out *v1beta1.EnterpriseSpec, s apiconversion.Scope) error {
out.CredentialsRef = v1.TypedLocalObjectReference{
Name: in.CredentialsName,
Kind: "GitHubCredentials",
APIGroup: &v1beta1.GroupVersion.Group,
}

return autoConvert_v1alpha1_EnterpriseSpec_To_v1beta1_EnterpriseSpec(in, out, s)
}

func Convert_v1beta1_EnterpriseSpec_To_v1alpha1_EnterpriseSpec(in *v1beta1.EnterpriseSpec, out *EnterpriseSpec, s apiconversion.Scope) error {
out.CredentialsName = in.CredentialsRef.Name

return autoConvert_v1beta1_EnterpriseSpec_To_v1alpha1_EnterpriseSpec(in, out, s)
}
3 changes: 3 additions & 0 deletions api/v1alpha1/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,7 @@ var (

// AddToScheme adds the types in this group-version to the given scheme.
AddToScheme = SchemeBuilder.AddToScheme

// localSchemeBuilder is getting used by the generated conversion
localSchemeBuilder = SchemeBuilder.SchemeBuilder
)
2 changes: 1 addition & 1 deletion api/v1alpha1/image_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ type ImageStatus struct {

//+kubebuilder:object:root=true
//+kubebuilder:resource:path=images,scope=Namespaced,categories=garm
//+kubebuilder:printcolumn:name="Tag",type=string,JSONPath=`.spec.tag`,priority=1
//+kubebuilder:printcolumn:name="Tag",type=string,JSONPath=`.spec.tag`
//+kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

// Image is the Schema for the images API
Expand Down
23 changes: 23 additions & 0 deletions api/v1alpha1/organization_conversion.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package v1alpha1

import (
v1beta1 "github.com/mercedes-benz/garm-operator/api/v1beta1"
v1 "k8s.io/api/core/v1"
apiconversion "k8s.io/apimachinery/pkg/conversion"
)

func Convert_v1alpha1_OrganizationSpec_To_v1beta1_OrganizationSpec(in *OrganizationSpec, out *v1beta1.OrganizationSpec, s apiconversion.Scope) error {
out.CredentialsRef = v1.TypedLocalObjectReference{
Name: in.CredentialsName,
Kind: "GitHubCredentials",
APIGroup: &v1beta1.GroupVersion.Group,
}

return autoConvert_v1alpha1_OrganizationSpec_To_v1beta1_OrganizationSpec(in, out, s)
}

func Convert_v1beta1_OrganizationSpec_To_v1alpha1_OrganizationSpec(in *v1beta1.OrganizationSpec, out *OrganizationSpec, s apiconversion.Scope) error {
out.CredentialsName = in.CredentialsRef.Name

return autoConvert_v1beta1_OrganizationSpec_To_v1alpha1_OrganizationSpec(in, out, s)
}
23 changes: 23 additions & 0 deletions api/v1alpha1/repository_conversion.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package v1alpha1

import (
"github.com/mercedes-benz/garm-operator/api/v1beta1"
v1 "k8s.io/api/core/v1"
apiconversion "k8s.io/apimachinery/pkg/conversion"
)

func Convert_v1alpha1_RepositorySpec_To_v1beta1_RepositorySpec(in *RepositorySpec, out *v1beta1.RepositorySpec, s apiconversion.Scope) error {
out.CredentialsRef = v1.TypedLocalObjectReference{
Name: in.CredentialsName,
Kind: "GitHubCredentials",
APIGroup: &v1beta1.GroupVersion.Group,
}

return autoConvert_v1alpha1_RepositorySpec_To_v1beta1_RepositorySpec(in, out, s)
}

func Convert_v1beta1_RepositorySpec_To_v1alpha1_RepositorySpec(in *v1beta1.RepositorySpec, out *RepositorySpec, s apiconversion.Scope) error {
out.CredentialsName = in.CredentialsRef.Name

return autoConvert_v1beta1_RepositorySpec_To_v1alpha1_RepositorySpec(in, out, s)
}
Loading
Loading