Skip to content

Commit

Permalink
even more work on conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
erikgb committed Oct 27, 2023
1 parent 67e006d commit 1cbbf02
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
17 changes: 14 additions & 3 deletions api/v2alpha1/subnamespace_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ import (
"encoding/json"
"fmt"
"github.com/cybozu-go/accurate/pkg/constants"
"k8s.io/apimachinery/pkg/api/meta"
"strconv"

accuratev1 "github.com/cybozu-go/accurate/api/v1"
"github.com/go-logr/logr"
kstatus "sigs.k8s.io/cli-utils/pkg/kstatus/status"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/conversion"
Expand All @@ -23,15 +25,20 @@ func (src *SubNamespace) ConvertTo(dstRaw conversion.Hub) error {
)
logger.V(5).Info("converting")

return src.convertToInternal(dst)
}

func (src *SubNamespace) convertToInternal(dst *accuratev1.SubNamespace) error {
dst.ObjectMeta = src.ObjectMeta

dst.Spec.Annotations = src.Spec.Annotations
dst.Spec.Labels = src.Spec.Labels

if len(src.Status.Conditions) == 0 {
dst.Status = accuratev1.SubNamespaceOK
} else {
switch {
case meta.IsStatusConditionTrue(src.Status.Conditions, string(kstatus.ConditionStalled)):
dst.Status = accuratev1.SubNamespaceConflict
case src.Status.ObservedGeneration == src.Generation && len(src.Status.Conditions) == 0:
dst.Status = accuratev1.SubNamespaceOK
}

// Store info in annotations to ensure conversions are lossy-less
Expand Down Expand Up @@ -61,6 +68,10 @@ func (dst *SubNamespace) ConvertFrom(srcRaw conversion.Hub) error {
)
logger.V(5).Info("converting")

return dst.convertFromInternal(src)
}

func (dst *SubNamespace) convertFromInternal(src *accuratev1.SubNamespace) error {
dst.ObjectMeta = src.ObjectMeta

dst.Spec.Annotations = src.Spec.Annotations
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module github.com/cybozu-go/accurate
go 1.21

require (
github.com/go-logr/logr v1.2.4
github.com/google/go-cmp v0.5.9
github.com/onsi/ginkgo/v2 v2.11.0
github.com/onsi/gomega v1.27.10
Expand All @@ -15,6 +16,7 @@ require (
k8s.io/client-go v0.28.2
k8s.io/component-base v0.28.2
k8s.io/klog/v2 v2.100.1
sigs.k8s.io/cli-utils v0.35.0
sigs.k8s.io/controller-runtime v0.16.2
sigs.k8s.io/yaml v1.3.0
)
Expand All @@ -29,7 +31,6 @@ require (
github.com/evanphx/json-patch/v5 v5.7.0 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/go-errors/errors v1.4.2 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/zapr v1.2.4 // indirect
github.com/go-openapi/jsonpointer v0.20.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,8 @@ k8s.io/kube-openapi v0.0.0-20230918164632-68afd615200d h1:/CFeJBjBrZvHX09rObS2+2
k8s.io/kube-openapi v0.0.0-20230918164632-68afd615200d/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/cli-utils v0.35.0 h1:dfSJaF1W0frW74PtjwiyoB4cwdRygbHnC7qe7HF0g/Y=
sigs.k8s.io/cli-utils v0.35.0/go.mod h1:ITitykCJxP1vaj1Cew/FZEaVJ2YsTN9Q71m02jebkoE=
sigs.k8s.io/controller-runtime v0.16.2 h1:mwXAVuEk3EQf478PQwQ48zGOXvW27UJc8NHktQVuIPU=
sigs.k8s.io/controller-runtime v0.16.2/go.mod h1:vpMu3LpI5sYWtujJOa2uPK61nB5rbwlN7BAB8aSLvGU=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
Expand Down

0 comments on commit 1cbbf02

Please sign in to comment.