Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit 534c77c

Browse files
authored
Local namespace set for reconciliation (#97)
1 parent 0276a15 commit 534c77c

10 files changed

Lines changed: 26 additions & 27 deletions

File tree

pkg/kubernetes/object.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ type Metadata struct {
5252
} `yaml:"ownerReferences,omitempty"`
5353
}
5454

55-
func CreateObject(resource, name, broker, crdFile string, spec map[string]interface{}) (Object, error) {
55+
func CreateObject(resource, name, namespace, broker, crdFile string, spec map[string]interface{}) (Object, error) {
5656
crdObject, err := crd.GetResourceCRD(resource, crdFile)
5757
if err != nil {
5858
return Object{}, fmt.Errorf("CRD schema not found: %w", err)
@@ -71,7 +71,8 @@ func CreateObject(resource, name, broker, crdFile string, spec map[string]interf
7171
APIVersion: fmt.Sprintf("%s/%s", crdObject.Spec.Group, version),
7272
Kind: crdObject.Spec.Names.Kind,
7373
Metadata: Metadata{
74-
Name: name,
74+
Name: name,
75+
Namespace: namespace,
7576
Labels: map[string]string{
7677
labelKey: broker,
7778
},
@@ -80,7 +81,7 @@ func CreateObject(resource, name, broker, crdFile string, spec map[string]interf
8081
}, nil
8182
}
8283

83-
func CreateUnstructured(resource, name, broker, crdFile string, spec map[string]interface{}, status map[string]interface{}) (unstructured.Unstructured, error) {
84+
func CreateUnstructured(resource, name, namespace, broker, crdFile string, spec map[string]interface{}, status map[string]interface{}) (unstructured.Unstructured, error) {
8485
crdObject, err := crd.GetResourceCRD(resource, crdFile)
8586
if err != nil {
8687
return unstructured.Unstructured{}, fmt.Errorf("CRD schema not found: %w", err)
@@ -99,6 +100,7 @@ func CreateUnstructured(resource, name, broker, crdFile string, spec map[string]
99100
u.SetAPIVersion(fmt.Sprintf("%s/%s", crdObject.Spec.Group, version))
100101
u.SetKind(crdObject.Spec.Names.Kind)
101102
u.SetName(name)
103+
u.SetNamespace(namespace)
102104
u.SetLabels(map[string]string{labelKey: broker})
103105
for k, v := range spec {
104106
switch val := v.(type) {

pkg/manifest/manifest.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ func (m *Manifest) Write() error {
6060
}
6161

6262
func (m *Manifest) Add(object kubernetes.Object) bool {
63+
object.Metadata.Namespace = "" // local manifest should not set namespace
6364
for i, o := range m.Objects {
6465
if matchObjects(object, o) {
6566
if !reflect.DeepEqual(o, object) {

pkg/triggermesh/adapter/reconciler/reconciler.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package reconciler
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"strings"
2223

2324
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -140,7 +141,10 @@ func Finalize(ctx context.Context, object unstructured.Unstructured, secrets map
140141
if err != nil {
141142
return err
142143
}
143-
return externalpubsub.EnsureNoSubscription(ctx, client)
144+
err = externalpubsub.EnsureNoSubscription(ctx, client) // err is never nil
145+
if err.Error() != fmt.Sprintf("Unsubscribed from topic %q", o.Spec.Topic) {
146+
return err
147+
}
144148
}
145149
return nil
146150
}

pkg/triggermesh/components/broker/broker.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ func (b *Broker) asUnstructured() (unstructured.Unstructured, error) {
5959
u.SetAPIVersion("eventing.triggermesh.io/v1alpha1")
6060
u.SetKind("Broker")
6161
u.SetName(b.Name)
62+
u.SetNamespace(triggermesh.Namespace)
6263
u.SetLabels(map[string]string{"context": b.Name})
6364
return u, unstructured.SetNestedField(u.Object, nil, "spec")
6465
}
@@ -68,7 +69,8 @@ func (b *Broker) asK8sObject() (kubernetes.Object, error) {
6869
APIVersion: "eventing.triggermesh.io/v1alpha1",
6970
Kind: "Broker",
7071
Metadata: kubernetes.Metadata{
71-
Name: b.Name,
72+
Name: b.Name,
73+
Namespace: triggermesh.Namespace,
7274
Labels: map[string]string{
7375
"triggermesh.io/context": b.Name,
7476
},

pkg/triggermesh/components/broker/trigger.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ func (t *Trigger) asK8sObject() (kubernetes.Object, error) {
7575
APIVersion: "eventing.triggermesh.io/v1alpha1",
7676
Kind: "Trigger",
7777
Metadata: kubernetes.Metadata{
78-
Name: t.Name,
78+
Name: t.Name,
79+
Namespace: triggermesh.Namespace,
7980
Labels: map[string]string{
8081
"triggermesh.io/context": t.Broker,
8182
},

pkg/triggermesh/components/secret/secret.go

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ limitations under the License.
1717
package secret
1818

1919
import (
20-
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
21-
2220
"github.com/triggermesh/tmctl/pkg/kubernetes"
2321
"github.com/triggermesh/tmctl/pkg/manifest"
2422
"github.com/triggermesh/tmctl/pkg/triggermesh"
@@ -33,24 +31,13 @@ type Secret struct {
3331
data map[string]string
3432
}
3533

36-
func (s *Secret) asUnstructured() (unstructured.Unstructured, error) {
37-
u := unstructured.Unstructured{}
38-
u.SetAPIVersion("v1")
39-
u.SetKind(s.GetKind())
40-
u.SetName(s.Name)
41-
u.SetLabels(map[string]string{"context": s.Context})
42-
if err := unstructured.SetNestedField(u.Object, "Opaque", "type"); err != nil {
43-
return unstructured.Unstructured{}, err
44-
}
45-
return u, unstructured.SetNestedStringMap(u.Object, s.data, "data")
46-
}
47-
4834
func (s *Secret) asK8sObject() (kubernetes.Object, error) {
4935
return kubernetes.Object{
5036
APIVersion: "v1",
5137
Kind: s.GetKind(),
5238
Metadata: kubernetes.Metadata{
53-
Name: s.Name,
39+
Name: s.Name,
40+
Namespace: triggermesh.Namespace,
5441
Labels: map[string]string{
5542
"triggermesh.io/context": s.Context,
5643
},

pkg/triggermesh/components/source/source.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ type Source struct {
5656
}
5757

5858
func (s *Source) asUnstructured() (unstructured.Unstructured, error) {
59-
return kubernetes.CreateUnstructured(s.GetKind(), s.GetName(), s.Broker, s.CRDFile, s.spec, s.status)
59+
return kubernetes.CreateUnstructured(s.GetKind(), s.GetName(), triggermesh.Namespace, s.Broker, s.CRDFile, s.spec, s.status)
6060
}
6161

6262
func (s *Source) asK8sObject() (kubernetes.Object, error) {
63-
return kubernetes.CreateObject(s.GetKind(), s.GetName(), s.Broker, s.CRDFile, s.spec)
63+
return kubernetes.CreateObject(s.GetKind(), s.GetName(), triggermesh.Namespace, s.Broker, s.CRDFile, s.spec)
6464
}
6565

6666
func (s *Source) asContainer(additionalEnvs map[string]string) (*docker.Container, error) {

pkg/triggermesh/components/target/target.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ type Target struct {
5151
}
5252

5353
func (t *Target) asUnstructured() (unstructured.Unstructured, error) {
54-
return kubernetes.CreateUnstructured(t.GetKind(), t.GetName(), t.Broker, t.CRDFile, t.spec, nil)
54+
return kubernetes.CreateUnstructured(t.GetKind(), t.GetName(), triggermesh.Namespace, t.Broker, t.CRDFile, t.spec, nil)
5555
}
5656

5757
func (t *Target) asK8sObject() (kubernetes.Object, error) {
58-
return kubernetes.CreateObject(t.GetKind(), t.GetName(), t.Broker, t.CRDFile, t.spec)
58+
return kubernetes.CreateObject(t.GetKind(), t.GetName(), triggermesh.Namespace, t.Broker, t.CRDFile, t.spec)
5959
}
6060

6161
func (t *Target) asContainer(additionalEnvs map[string]string) (*docker.Container, error) {

pkg/triggermesh/components/transformation/transformation.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ type Transformation struct {
4646
}
4747

4848
func (t *Transformation) asUnstructured() (unstructured.Unstructured, error) {
49-
return kubernetes.CreateUnstructured(t.GetKind(), t.GetName(), t.Broker, t.CRDFile, t.spec, nil)
49+
return kubernetes.CreateUnstructured(t.GetKind(), t.GetName(), triggermesh.Namespace, t.Broker, t.CRDFile, t.spec, nil)
5050
}
5151

5252
func (t *Transformation) asK8sObject() (kubernetes.Object, error) {
53-
return kubernetes.CreateObject(t.GetKind(), t.GetName(), t.Broker, t.CRDFile, t.spec)
53+
return kubernetes.CreateObject(t.GetKind(), t.GetName(), triggermesh.Namespace, t.Broker, t.CRDFile, t.spec)
5454
}
5555

5656
func (t *Transformation) asContainer(additionalEnvs map[string]string) (*docker.Container, error) {

pkg/triggermesh/triggermesh.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import (
2525
corev1 "k8s.io/api/core/v1"
2626
)
2727

28+
const Namespace = "local"
29+
2830
func secretToEnv(secret Component) ([]corev1.EnvVar, error) {
2931
if kind := secret.GetKind(); kind != "Secret" {
3032
return []corev1.EnvVar{}, fmt.Errorf("%q is not convertable to env variables", kind)

0 commit comments

Comments
 (0)