Skip to content

Commit

Permalink
Merge pull request #81 from damsien/main
Browse files Browse the repository at this point in the history
  • Loading branch information
damsien authored Feb 10, 2025
2 parents 3ec535c + 991ccc0 commit 7388042
Show file tree
Hide file tree
Showing 89 changed files with 8,144 additions and 561 deletions.
4 changes: 1 addition & 3 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
coverage:
status:
project: false
patch: false
comment:
layout: false
patch: false
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@ COVERPKG = $(shell go list ./... | grep -v 'test' | grep -v -E "$(DEPREACTED_API

.PHONY: test-behavior
test-behavior: cleanup-tests ## Install the test env (gitea). Run the behavior tests against a Kind k8s instance that is spun up. Cleanup when finished.
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./test/e2e/syngit -v -ginkgo.v -cover -coverpkg=$(COVERPKG) -coverprofile=coverage.txt
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./test/e2e/syngit -timeout 20m -v -ginkgo.v -cover -coverpkg=$(COVERPKG) -coverprofile=coverage.txt

.PHONY: fast-behavior
fast-behavior: ## Install the test env if not already installed. Run the behavior tests against a Kind k8s instance that is spun up. Does not cleanup when finished (meant to be run often).
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./test/e2e/syngit -v -ginkgo.v -cover -coverpkg=$(COVERPKG) -setup fast
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./test/e2e/syngit -timeout 20m -v -ginkgo.v -cover -coverpkg=$(COVERPKG) -setup fast

.PHONY: test-selected
test-selected: ## Install the test env if not already installed. Run only one selected test against a Kind k8s instance that is spun up. Does not cleanup when finished (meant to be run often).
Expand Down Expand Up @@ -323,6 +323,10 @@ kind-load-image: ## Load the image in KinD.
setup-gitea: ## Setup the 2 gitea platforms in the cluster
./test/utils/gitea/launch-gitea-setup.sh

.PHONY: reset-gitea
reset-gitea: ## Setup the 2 gitea platforms in the cluster
./test/utils/gitea/reset-gitea-repos.sh

.PHONY: cleanup-gitea
cleanup-gitea: ## Cleanup the 2 gitea platforms from the cluster.
rm -rf /tmp/gitea-certs
Expand Down
15 changes: 15 additions & 0 deletions PROJECT
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ resources:
version: v1beta3
webhooks:
conversion: true
validation: true
mutation: true
webhookVersion: v1
- api:
crdVersion: v1
Expand All @@ -239,4 +241,17 @@ resources:
conversion: true
validation: true
webhookVersion: v1
- api:
crdVersion: v1
namespaced: true
controller: true
domain: io
group: syngit
kind: RemoteTarget
path: github.com/syngit-org/syngit/pkg/api/v1beta3
version: v1beta3
webhooks:
conversion: true
validation: true
webhookVersion: v1
version: "3"
127 changes: 121 additions & 6 deletions charts/0.4.0/templates/crd/syngit.io_remotesyncer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -691,8 +691,70 @@ spec:
defaultBlockAppliedMessage:
type: string
defaultBranch:
default: main
example: main
type: string
defaultRemoteTargetRef:
description: |-
ObjectReference contains enough information to let you inspect or modify the referred object.
---
New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular
restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
Those cannot be well described when embedded.
3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity
during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple
and the version of the actual struct is irrelevant.
5. We cannot easily change it. Because this type is embedded in many locations, updates to this type
will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control.
Instead of using this type, create a locally provided and used type that is well-focused on your reference.
For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
defaultRemoteUserRef:
description: |-
ObjectReference contains enough information to let you inspect or modify the referred object.
Expand Down Expand Up @@ -831,6 +893,55 @@ spec:
example: https://git.example.com/my-repo.git
format: uri
type: string
remoteTargetSelector:
description: |-
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: |-
A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: |-
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: |-
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: |-
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
remoteUserBindingSelector:
description: |-
A label selector is a label query over a set of resources. The result of matchLabels and
Expand Down Expand Up @@ -1018,13 +1129,13 @@ spec:
- CommitApply
type: string
targetStrategy:
default: SameBranch
default: OneTarget
enum:
- SameBranch
- MultipleBranch
- Fork
- OneTarget
- MultipleTarget
type: string
required:
- defaultBranch
- defaultUnauthorizedUserMode
- remoteRepository
- scopedResources
Expand Down Expand Up @@ -1203,11 +1314,15 @@ spec:
- version
type: object
lastPushedObjectCommitHash:
type: string
items:
type: string
type: array
lastPushedObjectGitPath:
type: string
lastPushedObjectGitRepo:
type: string
items:
type: string
type: array
lastPushedObjectState:
type: string
lastPushedObjectTime:
Expand Down
Loading

0 comments on commit 7388042

Please sign in to comment.