From 7c945947ec1c2c32b3bcce4178afe7c933950a4c Mon Sep 17 00:00:00 2001 From: James Milligan Date: Mon, 3 Apr 2023 14:55:00 +0100 Subject: [PATCH 01/14] temp Signed-off-by: James Milligan --- config/manager/manager.yaml | 4 ++ .../flagsourceconfiguration/controller.go | 2 +- .../kube-flagd-proxy.go | 42 ++++++++++-- g.yaml | 67 +++++++++++++++++++ 4 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 g.yaml diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 44dbc7fb2..0b852d4fa 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -34,6 +34,10 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name args: - --leader-elect - --flagd-cpu-limit=0.5 diff --git a/controllers/core/flagsourceconfiguration/controller.go b/controllers/core/flagsourceconfiguration/controller.go index e1cfc492b..a09ef8ab3 100644 --- a/controllers/core/flagsourceconfiguration/controller.go +++ b/controllers/core/flagsourceconfiguration/controller.go @@ -92,7 +92,7 @@ func (r *FlagSourceConfigurationReconciler) Reconcile(ctx context.Context, req c for _, source := range fsConfig.Spec.Sources { if source.Provider.IsFlagdProxy() { r.Log.Info(fmt.Sprintf("flagsourceconfiguration %s uses flagd-proxy, checking deployment", req.NamespacedName)) - if err := r.FlagdProxy.handleFlagdProxy(ctx); err != nil { + if err := r.FlagdProxy.handleFlagdProxy(ctx, fsConfig); err != nil { r.Log.Error(err, "error handling the flagd-proxy deployment") } break diff --git a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go index 76dce4341..8cba4f4a8 100644 --- a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go +++ b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go @@ -6,6 +6,7 @@ import ( "os" "github.com/go-logr/logr" + corev1alpha1 "github.com/open-feature/open-feature-operator/apis/core/v1alpha1" "github.com/open-feature/open-feature-operator/pkg/utils" appsV1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -32,6 +33,7 @@ type FlagdProxyConfiguration struct { Image string Tag string Namespace string + PodName string } func NewFlagdProxyConfiguration() (*FlagdProxyConfiguration, error) { @@ -85,20 +87,25 @@ func (k *FlagdProxyHandler) Config() *FlagdProxyConfiguration { return k.config } -func (k *FlagdProxyHandler) handleFlagdProxy(ctx context.Context) error { +func (k *FlagdProxyHandler) handleFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { exists, err := k.doesFlagdProxyExist(ctx) if err != nil { return err } + if exists { + // append owner reference to the deployment and service + } if !exists { - return k.deployFlagdProxy(ctx) + return k.deployFlagdProxy(ctx, flagSourceConfiguration) } return nil } -func (k *FlagdProxyHandler) deployFlagdProxy(ctx context.Context) error { +func (k *FlagdProxyHandler) deployFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { + // get self, allows us to pull the owner reference for this POD (the deployment) + k.Log.Info("deploying the flagd-proxy") - if err := k.Client.Create(ctx, k.newFlagdProxyManifest()); err != nil && !errors.IsAlreadyExists(err) { + if err := k.Client.Create(ctx, k.newFlagdProxyManifest(flagSourceConfiguration)); err != nil && !errors.IsAlreadyExists(err) { return err } k.Log.Info("deploying the flagd-proxy service") @@ -113,6 +120,9 @@ func (k *FlagdProxyHandler) newFlagdProxyServiceManifest() *corev1.Service { ObjectMeta: metav1.ObjectMeta{ Name: FlagdProxyServiceName, Namespace: k.config.Namespace, + OwnerReferences: []metav1.OwnerReference{ + {}, + }, }, Spec: corev1.ServiceSpec{ Selector: map[string]string{ @@ -130,7 +140,7 @@ func (k *FlagdProxyHandler) newFlagdProxyServiceManifest() *corev1.Service { } } -func (k *FlagdProxyHandler) newFlagdProxyManifest() *appsV1.Deployment { +func (k *FlagdProxyHandler) newFlagdProxyManifest(flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) *appsV1.Deployment { replicas := int32(1) args := []string{ "start", @@ -157,7 +167,6 @@ func (k *FlagdProxyHandler) newFlagdProxyManifest() *appsV1.Deployment { "app": FlagdProxyDeploymentName, }, }, - Template: corev1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ @@ -166,6 +175,14 @@ func (k *FlagdProxyHandler) newFlagdProxyManifest() *appsV1.Deployment { "app.kubernetes.io/managed-by": ManagedByAnnotationValue, "app.kubernetes.io/version": k.config.Tag, }, + OwnerReferences: []metav1.OwnerReference{ + { + APIVersion: flagSourceConfiguration.APIVersion, + Kind: flagSourceConfiguration.Kind, + Name: flagSourceConfiguration.Name, + UID: flagSourceConfiguration.UID, + }, + }, }, Spec: corev1.PodSpec{ ServiceAccountName: FlagdProxyServiceAccountName, @@ -207,3 +224,16 @@ func (r *FlagdProxyHandler) doesFlagdProxyExist(ctx context.Context) (bool, erro // exists, at least one replica ready, no error return true, nil } + +func (r *FlagdProxyHandler) createOwnerReference() { + +} + +func ownerReferenceFromFSConfig(flagSourceConfiguration corev1alpha1.FlagSourceConfiguration) metav1.OwnerReference { + return metav1.OwnerReference{ + APIVersion: flagSourceConfiguration.APIVersion, + Kind: flagSourceConfiguration.Kind, + Name: flagSourceConfiguration.Name, + UID: flagSourceConfiguration.UID, + } +} diff --git a/g.yaml b/g.yaml new file mode 100644 index 000000000..7c97d5ec4 --- /dev/null +++ b/g.yaml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + deployment.kubernetes.io/revision: "1" + kubectl.kubernetes.io/last-applied-configuration: | + {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"flagd","namespace":"default"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"foo"}},"template":{"metadata":{"labels":{"app":"foo"}},"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx","ports":[{"containerPort":80}]}],"serviceAccountName":"default"}}}} + creationTimestamp: "2023-03-31T15:33:01Z" + generation: 1 + name: flagd + namespace: default + resourceVersion: "2110" + uid: 1cf66b95-a342-441a-9263-ce1694e136e6 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app: foo + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + creationTimestamp: null + labels: + app: foo + spec: + containers: + - image: nginx:1.14.2 + imagePullPolicy: IfNotPresent + name: nginx + ports: + - containerPort: 80 + protocol: TCP + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + serviceAccount: default + serviceAccountName: default + terminationGracePeriodSeconds: 30 +status: + availableReplicas: 1 + conditions: + - lastTransitionTime: "2023-03-31T15:33:01Z" + lastUpdateTime: "2023-03-31T15:33:09Z" + message: ReplicaSet "flagd-5c897f75cd" has successfully progressed. + reason: NewReplicaSetAvailable + status: "True" + type: Progressing + - lastTransitionTime: "2023-03-31T15:36:45Z" + lastUpdateTime: "2023-03-31T15:36:45Z" + message: Deployment has minimum availability. + reason: MinimumReplicasAvailable + status: "True" + type: Available + observedGeneration: 1 + readyReplicas: 1 + replicas: 1 + updatedReplicas: 1 From c0fd987090fa7107c72fa867e4da226b92075e07 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 11:14:53 +0100 Subject: [PATCH 02/14] resource owner + cleanup Signed-off-by: James Milligan --- config/rbac/kustomization.yaml | 2 +- ....yaml => service_account_flagd_proxy.yaml} | 0 .../flagsourceconfiguration/controller.go | 19 --- .../kube-flagd-proxy.go | 131 ++++++++++-------- docs/README.md | 2 +- docs/flag_source_configuration.md | 2 +- docs/{kube_flagd_proxy.md => flagd_proxy.md} | 4 + 7 files changed, 83 insertions(+), 77 deletions(-) rename config/rbac/{service_account_kube_flagd_proxy.yaml => service_account_flagd_proxy.yaml} (100%) rename docs/{kube_flagd_proxy.md => flagd_proxy.md} (91%) diff --git a/config/rbac/kustomization.yaml b/config/rbac/kustomization.yaml index 046871b52..d1852cf50 100644 --- a/config/rbac/kustomization.yaml +++ b/config/rbac/kustomization.yaml @@ -4,7 +4,7 @@ resources: # if your manager will use a service account that exists at # runtime. Be sure to update RoleBinding and ClusterRoleBinding # subjects if changing service account names. -- service_account_kube_flagd_proxy.yaml +- service_account_flagd_proxy.yaml - service_account_manager.yaml - role.yaml - role_binding.yaml diff --git a/config/rbac/service_account_kube_flagd_proxy.yaml b/config/rbac/service_account_flagd_proxy.yaml similarity index 100% rename from config/rbac/service_account_kube_flagd_proxy.yaml rename to config/rbac/service_account_flagd_proxy.yaml diff --git a/controllers/core/flagsourceconfiguration/controller.go b/controllers/core/flagsourceconfiguration/controller.go index 766727334..66a9f65b5 100644 --- a/controllers/core/flagsourceconfiguration/controller.go +++ b/controllers/core/flagsourceconfiguration/controller.go @@ -35,25 +35,6 @@ import ( corev1alpha1 "github.com/open-feature/open-feature-operator/apis/core/v1alpha1" ) -const ( - FlagdProxyDeploymentName = "flagd-proxy" - FlagdProxyServiceAccountName = "open-feature-operator-flagd-proxy" - FlagdProxyServiceName = "flagd-proxy-svc" - - envVarPodNamespace = "POD_NAMESPACE" - envVarProxyImage = "FLAGD_PROXY_IMAGE" - envVarProxyTag = "FLAGD_PROXY_TAG" - envVarProxyPort = "FLAGD_PROXY_PORT" - envVarProxyMetricsPort = "FLAGD_PROXY_METRICS_PORT" - envVarProxyDebugLogging = "FLAGD_PROXY_DEBUG_LOGGING" - defaultFlagdProxyImage = "ghcr.io/open-feature/flagd-proxy" - defaultFlagdProxyTag = "v0.2.0" //FLAGD_PROXY_TAG_RENOVATE - defaultFlagdProxyPort = 8015 - defaultFlagdProxyMetricsPort = 8016 - defaultFlagdProxyDebugLogging = false - defaultFlagdProxyNamespace = "open-feature-operator-system" -) - // FlagSourceConfigurationReconciler reconciles a FlagSourceConfiguration object type FlagSourceConfigurationReconciler struct { client.Client diff --git a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go index 8cba4f4a8..f654c9e72 100644 --- a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go +++ b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go @@ -17,7 +17,24 @@ import ( ) const ( - ManagedByAnnotationValue = "open-feature-operator" + ManagedByAnnotationValue = "open-feature-operator" + FlagdProxyDeploymentName = "flagd-proxy" + FlagdProxyServiceAccountName = "open-feature-operator-flagd-proxy" + FlagdProxyServiceName = "flagd-proxy-svc" + + envVarPodNamespace = "POD_NAMESPACE" + envVarProxyImage = "FLAGD_PROXY_IMAGE" + envVarProxyTag = "FLAGD_PROXY_TAG" + envVarProxyPort = "FLAGD_PROXY_PORT" + envVarProxyMetricsPort = "FLAGD_PROXY_METRICS_PORT" + envVarProxyDebugLogging = "FLAGD_PROXY_DEBUG_LOGGING" + defaultFlagdProxyImage = "ghcr.io/open-feature/flagd-proxy" + defaultFlagdProxyTag = "v0.2.0" //FLAGD_PROXY_TAG_RENOVATE + defaultFlagdProxyPort = 8015 + defaultFlagdProxyMetricsPort = 8016 + defaultFlagdProxyDebugLogging = false + defaultFlagdProxyNamespace = "open-feature-operator-system" + operatorDeploymentName = "open-feature-operator-controller-manager" ) type FlagdProxyHandler struct { @@ -27,20 +44,21 @@ type FlagdProxyHandler struct { } type FlagdProxyConfiguration struct { - Port int - MetricsPort int - DebugLogging bool - Image string - Tag string - Namespace string - PodName string + Port int + MetricsPort int + DebugLogging bool + Image string + Tag string + Namespace string + OperatorDeploymentName string } func NewFlagdProxyConfiguration() (*FlagdProxyConfiguration, error) { config := &FlagdProxyConfiguration{ - Image: defaultFlagdProxyImage, - Tag: defaultFlagdProxyTag, - Namespace: defaultFlagdProxyNamespace, + Image: defaultFlagdProxyImage, + Tag: defaultFlagdProxyTag, + Namespace: defaultFlagdProxyNamespace, + OperatorDeploymentName: operatorDeploymentName, } ns, ok := os.LookupEnv(envVarPodNamespace) if ok { @@ -83,46 +101,47 @@ func NewFlagdProxyHandler(config *FlagdProxyConfiguration, client client.Client, } } -func (k *FlagdProxyHandler) Config() *FlagdProxyConfiguration { - return k.config +func (f *FlagdProxyHandler) Config() *FlagdProxyConfiguration { + return f.config } -func (k *FlagdProxyHandler) handleFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { - exists, err := k.doesFlagdProxyExist(ctx) +func (f *FlagdProxyHandler) handleFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { + exists, err := f.doesFlagdProxyExist(ctx) if err != nil { return err } - if exists { - // append owner reference to the deployment and service - } if !exists { - return k.deployFlagdProxy(ctx, flagSourceConfiguration) + return f.deployFlagdProxy(ctx, flagSourceConfiguration) } return nil } -func (k *FlagdProxyHandler) deployFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { - // get self, allows us to pull the owner reference for this POD (the deployment) +func (f *FlagdProxyHandler) deployFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { + ownerReferences := []metav1.OwnerReference{} + ownerReference, err := f.getOwnerReference(ctx) + if err != nil { + f.Log.Error(err, "unable to create owner reference for open-feature-operator, not appending") + } else { + ownerReferences = append(ownerReferences, ownerReference) + } - k.Log.Info("deploying the flagd-proxy") - if err := k.Client.Create(ctx, k.newFlagdProxyManifest(flagSourceConfiguration)); err != nil && !errors.IsAlreadyExists(err) { + f.Log.Info("deploying the flagd-proxy") + if err := f.Client.Create(ctx, f.newFlagdProxyManifest(ownerReferences)); err != nil && !errors.IsAlreadyExists(err) { return err } - k.Log.Info("deploying the flagd-proxy service") - if err := k.Client.Create(ctx, k.newFlagdProxyServiceManifest()); err != nil && !errors.IsAlreadyExists(err) { + f.Log.Info("deploying the flagd-proxy service") + if err := f.Client.Create(ctx, f.newFlagdProxyServiceManifest(ownerReferences)); err != nil && !errors.IsAlreadyExists(err) { return err } return nil } -func (k *FlagdProxyHandler) newFlagdProxyServiceManifest() *corev1.Service { +func (f *FlagdProxyHandler) newFlagdProxyServiceManifest(ownerReferences []metav1.OwnerReference) *corev1.Service { return &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ - Name: FlagdProxyServiceName, - Namespace: k.config.Namespace, - OwnerReferences: []metav1.OwnerReference{ - {}, - }, + Name: FlagdProxyServiceName, + Namespace: f.config.Namespace, + OwnerReferences: ownerReferences, }, Spec: corev1.ServiceSpec{ Selector: map[string]string{ @@ -132,33 +151,34 @@ func (k *FlagdProxyHandler) newFlagdProxyServiceManifest() *corev1.Service { Ports: []corev1.ServicePort{ { Name: "flagd-proxy", - Port: int32(k.config.Port), - TargetPort: intstr.FromInt(k.config.Port), + Port: int32(f.config.Port), + TargetPort: intstr.FromInt(f.config.Port), }, }, }, } } -func (k *FlagdProxyHandler) newFlagdProxyManifest(flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) *appsV1.Deployment { +func (f *FlagdProxyHandler) newFlagdProxyManifest(ownerReferences []metav1.OwnerReference) *appsV1.Deployment { replicas := int32(1) args := []string{ "start", "--metrics-port", - fmt.Sprintf("%d", k.config.MetricsPort), + fmt.Sprintf("%d", f.config.MetricsPort), } - if k.config.DebugLogging { + if f.config.DebugLogging { args = append(args, "--debug") } return &appsV1.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: FlagdProxyDeploymentName, - Namespace: k.config.Namespace, + Namespace: f.config.Namespace, Labels: map[string]string{ "app": FlagdProxyDeploymentName, "app.kubernetes.io/managed-by": ManagedByAnnotationValue, - "app.kubernetes.io/version": k.config.Tag, + "app.kubernetes.io/version": f.config.Tag, }, + OwnerReferences: ownerReferences, }, Spec: appsV1.DeploymentSpec{ Replicas: &replicas, @@ -173,31 +193,23 @@ func (k *FlagdProxyHandler) newFlagdProxyManifest(flagSourceConfiguration *corev "app": FlagdProxyDeploymentName, "app.kubernetes.io/name": FlagdProxyDeploymentName, "app.kubernetes.io/managed-by": ManagedByAnnotationValue, - "app.kubernetes.io/version": k.config.Tag, - }, - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: flagSourceConfiguration.APIVersion, - Kind: flagSourceConfiguration.Kind, - Name: flagSourceConfiguration.Name, - UID: flagSourceConfiguration.UID, - }, + "app.kubernetes.io/version": f.config.Tag, }, }, Spec: corev1.PodSpec{ ServiceAccountName: FlagdProxyServiceAccountName, Containers: []corev1.Container{ { - Image: fmt.Sprintf("%s:%s", k.config.Image, k.config.Tag), + Image: fmt.Sprintf("%s:%s", f.config.Image, f.config.Tag), Name: FlagdProxyDeploymentName, Ports: []corev1.ContainerPort{ { Name: "port", - ContainerPort: int32(k.config.Port), + ContainerPort: int32(f.config.Port), }, { Name: "metrics-port", - ContainerPort: int32(k.config.MetricsPort), + ContainerPort: int32(f.config.MetricsPort), }, }, Args: args, @@ -209,10 +221,9 @@ func (k *FlagdProxyHandler) newFlagdProxyManifest(flagSourceConfiguration *corev } } -func (r *FlagdProxyHandler) doesFlagdProxyExist(ctx context.Context) (bool, error) { - r.Client.Scheme() - d := appsV1.Deployment{} - err := r.Client.Get(ctx, client.ObjectKey{Name: FlagdProxyDeploymentName, Namespace: r.config.Namespace}, &d) +func (f *FlagdProxyHandler) doesFlagdProxyExist(ctx context.Context) (bool, error) { + d := &appsV1.Deployment{} + err := f.Client.Get(ctx, client.ObjectKey{Name: FlagdProxyDeploymentName, Namespace: f.config.Namespace}, d) if err != nil { if errors.IsNotFound(err) { // does not exist, is not ready, no error @@ -225,7 +236,17 @@ func (r *FlagdProxyHandler) doesFlagdProxyExist(ctx context.Context) (bool, erro return true, nil } -func (r *FlagdProxyHandler) createOwnerReference() { +func (f *FlagdProxyHandler) getOwnerReference(ctx context.Context) (metav1.OwnerReference, error) { + d := &appsV1.Deployment{} + if err := f.Client.Get(ctx, client.ObjectKey{Name: f.config.OperatorDeploymentName, Namespace: f.config.Namespace}, d); err != nil { + return metav1.OwnerReference{}, fmt.Errorf("unable to fetch operator deployment to create owner reference: %w", err) + } + return metav1.OwnerReference{ + UID: d.GetUID(), + Name: d.GetName(), + APIVersion: d.APIVersion, + Kind: d.Kind, + }, nil } diff --git a/docs/README.md b/docs/README.md index 65a41b95f..8c84aafd0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -22,4 +22,4 @@ Configuration of the deployed sidecars is handled through the `FeatureFlagConfig - [Architecture](./architecture.md) - [Permissions](./permissions.md) - [Development Notes](./development_notes.md) -- [flagd Kube Proxy](./kube_flagd_proxy.md) \ No newline at end of file +- [flagd Kube Proxy](./flagd_proxy.md) \ No newline at end of file diff --git a/docs/flag_source_configuration.md b/docs/flag_source_configuration.md index 13ce15d53..142d19c3e 100644 --- a/docs/flag_source_configuration.md +++ b/docs/flag_source_configuration.md @@ -67,7 +67,7 @@ The relevant `FlagSourceConfigurations` are passed to the operator by setting th | ProviderID | Defines the identifier for grpc connection. Has no effect on other `Provider` types | optional `string` | | Selector | Defines the flag configuration selection criteria for grpc connection. Has no effect on other `Provider` types | optional `string` | -> The flagd-proxy provider type is experimental, documentation can be found [here](./kube_flagd_proxy.md) +> The flagd-proxy provider type is experimental, documentation can be found [here](./flagd_proxy.md) ## Configuration Merging diff --git a/docs/kube_flagd_proxy.md b/docs/flagd_proxy.md similarity index 91% rename from docs/kube_flagd_proxy.md rename to docs/flagd_proxy.md index 61c6e9960..39d63688f 100644 --- a/docs/kube_flagd_proxy.md +++ b/docs/flagd_proxy.md @@ -51,3 +51,7 @@ The current implementation of the `flagd-proxy` allows for a set of basic config | FLAGD_PROXY_PORT | Allows the default port of `8015` to eb overwritten | | FLAGD_PROXY_METRICS_PORT | Allows the default metrics port of `8016` to eb overwritten | | FLAGD_PROXY_DEBUG_LOGGING | Defaults to `"false"`, allows for the `--debug` flag to be set on the `flagd-proxy` container | + +## Resource Ownership + +On deployment the `flagd-proxy` `Deployment` will be configured with the `open-feature-operator-controller-manager` `Deployment` as its owner resource. As such the `flagd-proxy` and its associated `Service` will be garbage collected when the operator is uninstalled. \ No newline at end of file From 16c32572a38eef0f7996c8ce19c37bf9c5936ce4 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 11:16:55 +0100 Subject: [PATCH 03/14] removed unused env var Signed-off-by: James Milligan --- config/manager/manager.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 0b852d4fa..44dbc7fb2 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -34,10 +34,6 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name args: - --leader-elect - --flagd-cpu-limit=0.5 From 5a2b68deb48ded2654a70f92add76dcef6cd97e6 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 11:17:40 +0100 Subject: [PATCH 04/14] cleanup Signed-off-by: James Milligan --- controllers/core/flagsourceconfiguration/kube-flagd-proxy.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go index f654c9e72..a56607ac0 100644 --- a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go +++ b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go @@ -111,12 +111,12 @@ func (f *FlagdProxyHandler) handleFlagdProxy(ctx context.Context, flagSourceConf return err } if !exists { - return f.deployFlagdProxy(ctx, flagSourceConfiguration) + return f.deployFlagdProxy(ctx) } return nil } -func (f *FlagdProxyHandler) deployFlagdProxy(ctx context.Context, flagSourceConfiguration *corev1alpha1.FlagSourceConfiguration) error { +func (f *FlagdProxyHandler) deployFlagdProxy(ctx context.Context) error { ownerReferences := []metav1.OwnerReference{} ownerReference, err := f.getOwnerReference(ctx) if err != nil { From 3437b406988d51a3514320c675af28d145cde52d Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 11:18:05 +0100 Subject: [PATCH 05/14] cleanup Signed-off-by: James Milligan --- .../core/flagsourceconfiguration/kube-flagd-proxy.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go index a56607ac0..d2caa1000 100644 --- a/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go +++ b/controllers/core/flagsourceconfiguration/kube-flagd-proxy.go @@ -249,12 +249,3 @@ func (f *FlagdProxyHandler) getOwnerReference(ctx context.Context) (metav1.Owner }, nil } - -func ownerReferenceFromFSConfig(flagSourceConfiguration corev1alpha1.FlagSourceConfiguration) metav1.OwnerReference { - return metav1.OwnerReference{ - APIVersion: flagSourceConfiguration.APIVersion, - Kind: flagSourceConfiguration.Kind, - Name: flagSourceConfiguration.Name, - UID: flagSourceConfiguration.UID, - } -} From 9f2ab4964b3f0d85c5f6e2103939407a3883ee4e Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 11:18:30 +0100 Subject: [PATCH 06/14] cleanup Signed-off-by: James Milligan --- g.yaml | 67 ---------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 g.yaml diff --git a/g.yaml b/g.yaml deleted file mode 100644 index 7c97d5ec4..000000000 --- a/g.yaml +++ /dev/null @@ -1,67 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - annotations: - deployment.kubernetes.io/revision: "1" - kubectl.kubernetes.io/last-applied-configuration: | - {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"flagd","namespace":"default"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"foo"}},"template":{"metadata":{"labels":{"app":"foo"}},"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx","ports":[{"containerPort":80}]}],"serviceAccountName":"default"}}}} - creationTimestamp: "2023-03-31T15:33:01Z" - generation: 1 - name: flagd - namespace: default - resourceVersion: "2110" - uid: 1cf66b95-a342-441a-9263-ce1694e136e6 -spec: - progressDeadlineSeconds: 600 - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app: foo - strategy: - rollingUpdate: - maxSurge: 25% - maxUnavailable: 25% - type: RollingUpdate - template: - metadata: - creationTimestamp: null - labels: - app: foo - spec: - containers: - - image: nginx:1.14.2 - imagePullPolicy: IfNotPresent - name: nginx - ports: - - containerPort: 80 - protocol: TCP - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - dnsPolicy: ClusterFirst - restartPolicy: Always - schedulerName: default-scheduler - securityContext: {} - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 -status: - availableReplicas: 1 - conditions: - - lastTransitionTime: "2023-03-31T15:33:01Z" - lastUpdateTime: "2023-03-31T15:33:09Z" - message: ReplicaSet "flagd-5c897f75cd" has successfully progressed. - reason: NewReplicaSetAvailable - status: "True" - type: Progressing - - lastTransitionTime: "2023-03-31T15:36:45Z" - lastUpdateTime: "2023-03-31T15:36:45Z" - message: Deployment has minimum availability. - reason: MinimumReplicasAvailable - status: "True" - type: Available - observedGeneration: 1 - readyReplicas: 1 - replicas: 1 - updatedReplicas: 1 From 4916cbe22040ea97705ce6d17130e9f896c39b0a Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 12:08:02 +0100 Subject: [PATCH 07/14] version fix Signed-off-by: James Milligan --- chart/open-feature-operator/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/open-feature-operator/values.yaml b/chart/open-feature-operator/values.yaml index cc50c976c..dde3b927e 100644 --- a/chart/open-feature-operator/values.yaml +++ b/chart/open-feature-operator/values.yaml @@ -8,7 +8,7 @@ sidecarConfiguration: image: # these fields must remain in the same order, renovate uses a regex to update the tag value repository: "ghcr.io/open-feature/flagd" - tag: v0.4.5 + tag: v0.4.4 providerArgs: "" envVarPrefix: "FLAGD" defaultSyncProvider: kubernetes From cec14e97206b1ab8a2e811a0696cc6492fab894e Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 12:20:05 +0100 Subject: [PATCH 08/14] version fix Signed-off-by: James Milligan --- chart/open-feature-operator/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chart/open-feature-operator/values.yaml b/chart/open-feature-operator/values.yaml index dde3b927e..cc50c976c 100644 --- a/chart/open-feature-operator/values.yaml +++ b/chart/open-feature-operator/values.yaml @@ -8,7 +8,7 @@ sidecarConfiguration: image: # these fields must remain in the same order, renovate uses a regex to update the tag value repository: "ghcr.io/open-feature/flagd" - tag: v0.4.4 + tag: v0.4.5 providerArgs: "" envVarPrefix: "FLAGD" defaultSyncProvider: kubernetes From b37020df830e7f56e493af6c4c1194a7fbd9f149 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Tue, 4 Apr 2023 15:14:17 +0100 Subject: [PATCH 09/14] temp Signed-off-by: James Milligan --- kubeconfig | 17 +++ kuttl-test-local.yaml | 2 +- kuttl-test.yaml | 2 +- out.yaml | 124 ++++++++++++++++++ test/e2e/kuttl/flagd-disabled/00-assert.yaml | 9 -- test/e2e/kuttl/flagd-disabled/00-install.yaml | 117 ----------------- test/e2e/kuttl/flagd-disabled/01-assert.yaml | 11 -- test/e2e/kuttl/inject-flagd/01-install.yaml | 7 + .../{01-assert.yaml => 02-assert.yaml} | 5 +- 9 files changed, 153 insertions(+), 141 deletions(-) create mode 100644 kubeconfig create mode 100644 out.yaml delete mode 100644 test/e2e/kuttl/flagd-disabled/00-assert.yaml delete mode 100644 test/e2e/kuttl/flagd-disabled/00-install.yaml delete mode 100644 test/e2e/kuttl/flagd-disabled/01-assert.yaml create mode 100644 test/e2e/kuttl/inject-flagd/01-install.yaml rename test/e2e/kuttl/inject-flagd/{01-assert.yaml => 02-assert.yaml} (89%) diff --git a/kubeconfig b/kubeconfig new file mode 100644 index 000000000..da5aa4827 --- /dev/null +++ b/kubeconfig @@ -0,0 +1,17 @@ +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1EUXdOREV6TURNeE0xb1hEVE16TURRd01URXpNRE14TTFvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUVrCmR6akxaWGFtWG1BNVV5NllTYjM4U08vemxwYkRVR2ZCSDg0U2NtMXp3SjhveC9JS2xIdE56T3Exb3hibjZsbGcKQmxaL0FBNlgwOVJqSHVMYjNkVkNRMmJadkRMVFFnamttMlNaeGJHTklvN3lRbWFGQnNVeTJhS1lOTm1RY1hXQwpyckZsY1ljdS92WjF0eU4zTGtycTVIN0RkMnM5MC9Tc0I3YnVmb2VYMDNDUkE3bVRlWlhNK0M1Q0ZWU3ZBL2czCkp5REh0YmVkVDFIRitUYURURnN2dVliUkxpZ2ZLSlJtM1c5VzREaGpUWmFudXd5UkFjbWtrSndNeHo3NVY2TGoKS3Fvc3A1U2FPWFJmbVJ6VDcrNUYvT0ZyZExCVkU3bTk1NUpIcXltbzRqSFphRm5seUdudWowSWVVbnI5VW0wQQpRSnA3R2hkQ21RQXV6UklSdjZrQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZKc1lOSUpFQXJxVmtaMWtwbm1vT24wY0JKdjRNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQ1dLSTVtaW5VNE1ybU82T0c3eQpyczJxWC9YT3RlNjM3U0daQWVCL0phRjVESDNleDIzazJObWw0MW1hQ1VNWFNKbkJFYlc0T1pxcFBDWGV2WCthCnViNDJjb1lJVmptSTV3NWVtMXRyMjZEc2RqY09GOW94UXlvL3BlT25ZM2k4VmZUeFhvK1JybVZqSUUyVjNCeCsKODEwZzZEMG12eHRZd0lNS0tFamNVajZoOVFyK0prcHN0OTlId2JGOVZIWnRMSEsxR3JlSTcrMnVzcDBzelhEawo4cVBNWHJXQ1ZwL3RVWDY2cWNUU0o5Ry9hOXNWUURlRzZGQjhDWmdPV3o4SGc2UTRVUEpPZFRWQTE0eEtqMW56ClFWbEozVUg0RW9TcUpsOTFkKzY2RmZibFMwRGptVU5YbWljOWRYTGVBTkRoaUxXd3lrMGtyL1B3SFV5WW5rTUwKV1hNPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + server: https://127.0.0.1:51614 + name: cluster +contexts: +- context: + cluster: cluster + user: user + name: cluster +current-context: cluster +preferences: {} +users: +- name: user + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJU1JlRFFuZWhrQm93RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBME1EUXhNekF6TVROYUZ3MHlOREEwTURNeE16QXpNVFZhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTFEZHVEaW5rekl6K1BHR2gKMzhINGR4a0c4dlBkV1FpRDhybjhlUWhObVFZd0FNdGtQQTVFd2dxaWkvdkp0ei9adVliWS9xOHQ1VmRHSFBYRgpyTVMrNlVKajJaLzYxcG13bk1obFdTU3JiOGtRdVhOYmtZajJEaW83dytQU3J4R1BZWFhsZGxvKzJsd1BTVWV6Cnoya0NhT214TVM5N3FMcGZKTzJMclQremVzdWkyQWk2RThwdEhGMG9TbG5zcFFVNHRQb1pybGUwUGVyL2s3dXAKS01QL1YydVZMblJldk4ydU5YRkRKMlhKYnNrK21LS2ZLVXJBNzlPRjMzeTZ1cXN6VHI3bjJQTS9xT0kyUjdtbgpsNHBtY1dMeXoyaW00cVFHeW8rRU1wbWdMSGxrdzZBdlFXeExGcktsQi90TURLMm4rLzBJSlpBUlZHZVdRTjRyCnJ6UmQ4UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JTYkdEU0NSQUs2bFpHZFpLWjVxRHA5SEFTYgorREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBRmU1MXpiOGxtZU9ZdTBtSDU2MUc3bXlBMUxaVjEzOXlabmZhCm1OUGp6Y2dXNnZHemhsd3pHTGx0RnJDMVAyeDFlbzBJZXdScVFrTERUR0UwQjQxdkxBSUw0V1MwY3RCWlVMVVgKTmFuWGhZV1JaRTdCTWZ3NTEvUXd4eXNHWThNd2kvRjZtSlZHWXNtZWg4K2tURE55aHJYYkg5dGZ2cFppY1Z0SgpENXVTYkNCUkgvbFZWL29ydUw4Z3BOUlpzaCthSTluMXZSK3UyZnBJc0ExSGdOanBMVlF4ZFBXUklWRlBLd3hvCnJ2cUJzTEIyTkxOR1BWQ0FkS0pxQlMxN214Tzd1ZmdjZFcxSlVOZFpyTVBtVDc5MHd4V2xrS0pXRUlTREN6cFkKVmpHR3NEZFJOeE5qMkFYSFR0M0FFVTVGWWcrMnFIUmpHY2FYc2dmbmhGa3FHd21oRUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMURkdURpbmt6SXorUEdHaDM4SDRkeGtHOHZQZFdRaUQ4cm44ZVFoTm1RWXdBTXRrClBBNUV3Z3FpaS92SnR6L1p1WWJZL3E4dDVWZEdIUFhGck1TKzZVSmoyWi82MXBtd25NaGxXU1NyYjhrUXVYTmIKa1lqMkRpbzd3K1BTcnhHUFlYWGxkbG8rMmx3UFNVZXp6MmtDYU9teE1TOTdxTHBmSk8yTHJUK3plc3VpMkFpNgpFOHB0SEYwb1NsbnNwUVU0dFBvWnJsZTBQZXIvazd1cEtNUC9WMnVWTG5SZXZOMnVOWEZESjJYSmJzayttS0tmCktVckE3OU9GMzN5NnVxc3pUcjduMlBNL3FPSTJSN21ubDRwbWNXTHl6MmltNHFRR3lvK0VNcG1nTEhsa3c2QXYKUVd4TEZyS2xCL3RNREsybisvMElKWkFSVkdlV1FONHJyelJkOFFJREFRQUJBb0lCQUh3ZEl2K2puczNIRkJYSwpYL3JXbmZOQnJ0KytvbEVrK3M2bDJiUUxtQjZNRU4wV0Z6eE1lQWdvWWlLT2tzM2F5UUtKakRWL3pNN1p1UWJNCjh0eDFnTlk1WHQ1emd5ZXBZVEtBdlUxaWRlVjk2WXNjbll4RFZ1eTM1SlpQa3ZPU3lKR09lekk1MjVLbnpzVGoKNjVTOWJJeGhTS0Zrak9VRWd3cTg1empmRGFBZGtocUswUTVha2kyczQzemtreE50V00xS0ZHUGJ5MXI5TmlVMwo1Wk5VUzJ1V05iZ0xOUFV6clNVSVVKWittZ2tTa1g2YXJVcU9QaXhIV1p4V2dKR3Y1SUhWYzBLQjFYbVJuOWtnClFrbzI1MDRPSkg1Z1h0eVBBYjdua2VMWUlyK3VEUWxuOHhjTmZ5SEFYU1p2d1M5QW51dUxocWVSRGNPZGZOOUEKYWdNS0hWVUNnWUVBN3RuUUdoMzVNR0J2NVlNbGt4Q1IwMENVNnkzZEFtblJaOXJmWmg5Qno4YitFR0FnL2NJWApOazg2NVRvdW95RW14RklmNVN1aFloN0ZFcmI4TkVFM2RNYlJPU2syNlRReU9NTnZUL2JURkMwODJLa0lsQ3lhCnAzaXNLTkxOOHIzVWdGZlZBVnQ2YUpPRVBJcXFhS29LS1haUjZZMjE4Mm9kWmhaTnRZQ0xNc01DZ1lFQTQzUVEKOTdBZUcvSDFwOERDUWxtcWVnUGVNMnk2YXU2bE1Kdk11bFJjYzNhK0p3bWRwa1BWTVhwSWVEVzNBbGg2Tk1DZApncFNIdzIwRHdEUG5BancrRnlabElzMHJZOHc4UHpGMDN4b1BKWjRFeUpiSEFIYm9UWERVYzJWV3pDTUoreWRFClhlRlloUi93NzJaNWNHWTZBVFBoZ3hkNkFxSTFTdjJ0N1g1QStUc0NnWUJOKzFWRFFhZjdFSEZZR01KcXlvMGgKME1NT0tiSXZ1SWJEQnFYTGZNY0s1R2hNeG1YZkU4QnFYZUhYdDNCRW1HMUV5WjlhUGkxNWtKdzlLUHNjd0hJdgpzVDNjRU1XNXkrM2R0SWtpTFc3cTluNFlLcy8vT0xUaG1yZHl1S2krNlJWNU5iUDR0bm8zckhvUEhpTFcrelZJCkpqWkdMNXRKTnNzVWFwSENnWTV3NndLQmdFZHdaUVBtcFE1UjZMNVBwTFFDUmJFZEZlVkErU3dzMkdWMENkRmMKUGMxbU5rTThtZTltenNkRGlROTRqNHFGRDUwU0FtYkpEL3NwZWt3Y0FTcUtrVlhrRVUvazhRUGZXZXpmTTczLwpDVkxmVnRGSnlpY3pNYk5oQk5sWnN2RmE3LythVGJiTzJHYTNxWTBIdW95N0R1emh4cXJON054MjVoWXZwems0CnRsK1JBb0dCQUxDamUxSlR3bzNHVGh0R05PblFvRlV4ZDlja1J6WmZ4cVVpdXZPSHM4WGF5Y3Fja2xIZnp2WjcKY0lNNzE4dFUvYTlxNGd0UEpGRlNoUC92ZFprdEY3Z1lsMnhJNTdTTXlnY0Q4NmZZbFRodnladnpZL1FrMDhGaQp4czV2ZmRET3NUVHNOa2NMRjQzQnlOM0ZadEZKQkNZZmpLc0FRc0JRemlwSGxqenREZmNCCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== diff --git a/kuttl-test-local.yaml b/kuttl-test-local.yaml index 5769b5f65..a2082a101 100644 --- a/kuttl-test-local.yaml +++ b/kuttl-test-local.yaml @@ -3,4 +3,4 @@ kind: TestSuite crdDir: ./config/crd/bases testDirs: - ./test/e2e/kuttl/scenarios/ -timeout: 300 \ No newline at end of file +timeout: 30 \ No newline at end of file diff --git a/kuttl-test.yaml b/kuttl-test.yaml index c76198704..16f16f181 100644 --- a/kuttl-test.yaml +++ b/kuttl-test.yaml @@ -3,5 +3,5 @@ kind: TestSuite crdDir: ./config/crd/bases testDirs: - ./test/e2e/kuttl/scenarios/ -timeout: 300 +timeout: 30 skipDelete: true diff --git a/out.yaml b/out.yaml new file mode 100644 index 000000000..21e300f6f --- /dev/null +++ b/out.yaml @@ -0,0 +1,124 @@ +apiVersion: v1 +kind: Pod +metadata: + creationTimestamp: "2023-04-04T13:44:11Z" + generateName: flagd-query-test- + labels: + controller-uid: e1949dfe-8c25-43dd-a6ea-b42069bc1014 + job-name: flagd-query-test + name: flagd-query-test-txqwc + namespace: kuttl-test-master-ox + ownerReferences: + - apiVersion: batch/v1 + blockOwnerDeletion: true + controller: true + kind: Job + name: flagd-query-test + uid: e1949dfe-8c25-43dd-a6ea-b42069bc1014 + resourceVersion: "5772" + uid: e103e137-9a8f-452a-855d-ed509b14bfcc +spec: + containers: + - args: + - /bin/sh + - -ec + - | + STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "open-feature-e2e-failtest-service:40000/schema.v1.Service/ResolveBoolean" -d "{\"flagKey\":\"simple-flag\",\"context\":{}}" -H "Content-Type: application/json") + if [ "$STATUS_CODE" -eq 200 ]; then + echo "Expected curl to nginx reverse proxy to return non 200 status code when openfeature.dev/enabled annotation is false." + exit 1 + fi + exit 0 + image: curlimages/curl:7.72.0 + imagePullPolicy: IfNotPresent + name: test-flagd-endpoint + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/run/secrets/kubernetes.io/serviceaccount + name: kube-api-access-87rzj + readOnly: true + dnsPolicy: ClusterFirst + enableServiceLinks: true + nodeName: kind-control-plane + preemptionPolicy: PreemptLowerPriority + priority: 0 + restartPolicy: Never + schedulerName: default-scheduler + securityContext: {} + serviceAccount: default + serviceAccountName: default + terminationGracePeriodSeconds: 30 + tolerations: + - effect: NoExecute + key: node.kubernetes.io/not-ready + operator: Exists + tolerationSeconds: 300 + - effect: NoExecute + key: node.kubernetes.io/unreachable + operator: Exists + tolerationSeconds: 300 + volumes: + - name: kube-api-access-87rzj + projected: + defaultMode: 420 + sources: + - serviceAccountToken: + expirationSeconds: 3607 + path: token + - configMap: + items: + - key: ca.crt + path: ca.crt + name: kube-root-ca.crt + - downwardAPI: + items: + - fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + path: namespace +status: + conditions: + - lastProbeTime: null + lastTransitionTime: "2023-04-04T13:44:11Z" + reason: PodCompleted + status: "True" + type: Initialized + - lastProbeTime: null + lastTransitionTime: "2023-04-04T13:44:11Z" + reason: PodCompleted + status: "False" + type: Ready + - lastProbeTime: null + lastTransitionTime: "2023-04-04T13:44:11Z" + reason: PodCompleted + status: "False" + type: ContainersReady + - lastProbeTime: null + lastTransitionTime: "2023-04-04T13:44:11Z" + status: "True" + type: PodScheduled + containerStatuses: + - containerID: containerd://ed2b63a1e959eb1829f92f289fd64fba4a28b43a1bfe18fe5756ff9a2214a8dd + image: docker.io/curlimages/curl:7.72.0 + imageID: docker.io/curlimages/curl@sha256:bd5bbd35f89b867c1dccbc84b8be52f3f74dea20b46c5fe0db3780e040afcb6f + lastState: {} + name: test-flagd-endpoint + ready: false + restartCount: 0 + started: false + state: + terminated: + containerID: containerd://ed2b63a1e959eb1829f92f289fd64fba4a28b43a1bfe18fe5756ff9a2214a8dd + exitCode: 0 + finishedAt: "2023-04-04T13:44:13Z" + reason: Completed + startedAt: "2023-04-04T13:44:13Z" + hostIP: 172.18.0.2 + phase: Succeeded + podIP: 10.244.0.46 + podIPs: + - ip: 10.244.0.46 + qosClass: BestEffort + startTime: "2023-04-04T13:44:11Z" diff --git a/test/e2e/kuttl/flagd-disabled/00-assert.yaml b/test/e2e/kuttl/flagd-disabled/00-assert.yaml deleted file mode 100644 index f5a12d037..000000000 --- a/test/e2e/kuttl/flagd-disabled/00-assert.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: flagd-query-test -status: - conditions: - - type: Complete - status: 'True' #this ensures flagd is running - succeeded: 1 diff --git a/test/e2e/kuttl/flagd-disabled/00-install.yaml b/test/e2e/kuttl/flagd-disabled/00-install.yaml deleted file mode 100644 index 7c7ca4e46..000000000 --- a/test/e2e/kuttl/flagd-disabled/00-install.yaml +++ /dev/null @@ -1,117 +0,0 @@ -# This configuration deploys the means to test the mutating injection webhook by proxying through an nginx server -# to assert that flagd is reachable ---- -apiVersion: core.openfeature.dev/v1alpha1 -kind: FeatureFlagConfiguration -metadata: - name: end-to-end-test -spec: - featureFlagSpec: | - { - "flags": { - "simple-flag": { - "state": "ENABLED", - "variants": { - "on": true, - "off": false - }, - "defaultVariant": "on" - } - } - } ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: open-feature-e2e-test-sa -automountServiceAccountToken: true ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: open-feature-e2e-nginx-conf -data: - nginx.conf: | - events {} - http { - server { - location / { - proxy_pass http://127.0.0.1:8013; - } - } - } ---- -# Deployment of nginx using our custom resource -apiVersion: apps/v1 -kind: Deployment -metadata: - name: open-feature-e2e-test-deployment - labels: - app: open-feature-e2e-test -spec: - replicas: 1 - selector: - matchLabels: - app: open-feature-e2e-test - template: - metadata: - annotations: - openfeature.dev/enabled: "false" - labels: - app: open-feature-e2e-test - spec: - serviceAccountName: open-feature-e2e-test-sa - volumes: - - name: open-feature-e2e-nginx-conf - configMap: - name: open-feature-e2e-nginx-conf - items: - - key: nginx.conf - path: nginx.conf - containers: - - name: open-feature-e2e-test - image: nginx:stable-alpine - ports: - - containerPort: 80 - volumeMounts: - - name: open-feature-e2e-nginx-conf - mountPath: /etc/nginx - readOnly: true ---- -# Service exposed using NodePort -apiVersion: v1 -kind: Service -metadata: - name: open-feature-e2e-failtest-service -spec: - type: ClusterIP - selector: - app: open-feature-e2e-test - ports: - - protocol: TCP - port: 40000 - targetPort: 80 ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: flagd-query-test -spec: - backoffLimit: 5 - template: - spec: - containers: - - name: test-flagd-endpoint - image: curlimages/curl:7.72.0 - args: - - /bin/sh - - -ec - - | - STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "open-feature-e2e-failtest-service:40000/schema.v1.Service/ResolveBoolean" -d "{\"flagKey\":\"simple-flag\",\"context\":{}}" -H "Content-Type: application/json") - if [ "$STATUS_CODE" -eq 200 ]; then - echo "Expected curl to nginx reverse proxy to return non 200 status code when openfeature.dev/enabled annotation is false." - exit 1 - fi - exit 0 - - restartPolicy: Never diff --git a/test/e2e/kuttl/flagd-disabled/01-assert.yaml b/test/e2e/kuttl/flagd-disabled/01-assert.yaml deleted file mode 100644 index e67634f87..000000000 --- a/test/e2e/kuttl/flagd-disabled/01-assert.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - labels: - app: open-feature-e2e-test -status: - phase: Running -spec: - containers: - - name: open-feature-e2e-test - image: nginx:stable-alpine diff --git a/test/e2e/kuttl/inject-flagd/01-install.yaml b/test/e2e/kuttl/inject-flagd/01-install.yaml new file mode 100644 index 000000000..022a73cf3 --- /dev/null +++ b/test/e2e/kuttl/inject-flagd/01-install.yaml @@ -0,0 +1,7 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +delete: +- apiVersion: v1 + kind: Pod + labels: + job-name: flagd-query-test diff --git a/test/e2e/kuttl/inject-flagd/01-assert.yaml b/test/e2e/kuttl/inject-flagd/02-assert.yaml similarity index 89% rename from test/e2e/kuttl/inject-flagd/01-assert.yaml rename to test/e2e/kuttl/inject-flagd/02-assert.yaml index 30a6b5ab9..0ed5707d9 100644 --- a/test/e2e/kuttl/inject-flagd/01-assert.yaml +++ b/test/e2e/kuttl/inject-flagd/02-assert.yaml @@ -11,7 +11,8 @@ status: phase: Running spec: containers: - - name: flagd # this part verifies flagd injection happened - image: ghcr.io/open-feature/flagd:v0.4.5 - name: open-feature-e2e-test image: nginx:stable-alpine + - name: flagd # this part verifies flagd injection happened + image: ghcr.io/open-feature/flagd:v0.4.4 + From f1192ccac534b94bfdc9f3508f5ee50a8a56c4c1 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Wed, 12 Apr 2023 08:16:53 +0100 Subject: [PATCH 10/14] cleanup Signed-off-by: James Milligan --- kubeconfig | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 kubeconfig diff --git a/kubeconfig b/kubeconfig deleted file mode 100644 index da5aa4827..000000000 --- a/kubeconfig +++ /dev/null @@ -1,17 +0,0 @@ -clusters: -- cluster: - certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1EUXdOREV6TURNeE0xb1hEVE16TURRd01URXpNRE14TTFvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUVrCmR6akxaWGFtWG1BNVV5NllTYjM4U08vemxwYkRVR2ZCSDg0U2NtMXp3SjhveC9JS2xIdE56T3Exb3hibjZsbGcKQmxaL0FBNlgwOVJqSHVMYjNkVkNRMmJadkRMVFFnamttMlNaeGJHTklvN3lRbWFGQnNVeTJhS1lOTm1RY1hXQwpyckZsY1ljdS92WjF0eU4zTGtycTVIN0RkMnM5MC9Tc0I3YnVmb2VYMDNDUkE3bVRlWlhNK0M1Q0ZWU3ZBL2czCkp5REh0YmVkVDFIRitUYURURnN2dVliUkxpZ2ZLSlJtM1c5VzREaGpUWmFudXd5UkFjbWtrSndNeHo3NVY2TGoKS3Fvc3A1U2FPWFJmbVJ6VDcrNUYvT0ZyZExCVkU3bTk1NUpIcXltbzRqSFphRm5seUdudWowSWVVbnI5VW0wQQpRSnA3R2hkQ21RQXV6UklSdjZrQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZKc1lOSUpFQXJxVmtaMWtwbm1vT24wY0JKdjRNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQ1dLSTVtaW5VNE1ybU82T0c3eQpyczJxWC9YT3RlNjM3U0daQWVCL0phRjVESDNleDIzazJObWw0MW1hQ1VNWFNKbkJFYlc0T1pxcFBDWGV2WCthCnViNDJjb1lJVmptSTV3NWVtMXRyMjZEc2RqY09GOW94UXlvL3BlT25ZM2k4VmZUeFhvK1JybVZqSUUyVjNCeCsKODEwZzZEMG12eHRZd0lNS0tFamNVajZoOVFyK0prcHN0OTlId2JGOVZIWnRMSEsxR3JlSTcrMnVzcDBzelhEawo4cVBNWHJXQ1ZwL3RVWDY2cWNUU0o5Ry9hOXNWUURlRzZGQjhDWmdPV3o4SGc2UTRVUEpPZFRWQTE0eEtqMW56ClFWbEozVUg0RW9TcUpsOTFkKzY2RmZibFMwRGptVU5YbWljOWRYTGVBTkRoaUxXd3lrMGtyL1B3SFV5WW5rTUwKV1hNPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== - server: https://127.0.0.1:51614 - name: cluster -contexts: -- context: - cluster: cluster - user: user - name: cluster -current-context: cluster -preferences: {} -users: -- name: user - user: - client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJU1JlRFFuZWhrQm93RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TXpBME1EUXhNekF6TVROYUZ3MHlOREEwTURNeE16QXpNVFZhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTFEZHVEaW5rekl6K1BHR2gKMzhINGR4a0c4dlBkV1FpRDhybjhlUWhObVFZd0FNdGtQQTVFd2dxaWkvdkp0ei9adVliWS9xOHQ1VmRHSFBYRgpyTVMrNlVKajJaLzYxcG13bk1obFdTU3JiOGtRdVhOYmtZajJEaW83dytQU3J4R1BZWFhsZGxvKzJsd1BTVWV6Cnoya0NhT214TVM5N3FMcGZKTzJMclQremVzdWkyQWk2RThwdEhGMG9TbG5zcFFVNHRQb1pybGUwUGVyL2s3dXAKS01QL1YydVZMblJldk4ydU5YRkRKMlhKYnNrK21LS2ZLVXJBNzlPRjMzeTZ1cXN6VHI3bjJQTS9xT0kyUjdtbgpsNHBtY1dMeXoyaW00cVFHeW8rRU1wbWdMSGxrdzZBdlFXeExGcktsQi90TURLMm4rLzBJSlpBUlZHZVdRTjRyCnJ6UmQ4UUlEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JTYkdEU0NSQUs2bFpHZFpLWjVxRHA5SEFTYgorREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBRmU1MXpiOGxtZU9ZdTBtSDU2MUc3bXlBMUxaVjEzOXlabmZhCm1OUGp6Y2dXNnZHemhsd3pHTGx0RnJDMVAyeDFlbzBJZXdScVFrTERUR0UwQjQxdkxBSUw0V1MwY3RCWlVMVVgKTmFuWGhZV1JaRTdCTWZ3NTEvUXd4eXNHWThNd2kvRjZtSlZHWXNtZWg4K2tURE55aHJYYkg5dGZ2cFppY1Z0SgpENXVTYkNCUkgvbFZWL29ydUw4Z3BOUlpzaCthSTluMXZSK3UyZnBJc0ExSGdOanBMVlF4ZFBXUklWRlBLd3hvCnJ2cUJzTEIyTkxOR1BWQ0FkS0pxQlMxN214Tzd1ZmdjZFcxSlVOZFpyTVBtVDc5MHd4V2xrS0pXRUlTREN6cFkKVmpHR3NEZFJOeE5qMkFYSFR0M0FFVTVGWWcrMnFIUmpHY2FYc2dmbmhGa3FHd21oRUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== - client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBMURkdURpbmt6SXorUEdHaDM4SDRkeGtHOHZQZFdRaUQ4cm44ZVFoTm1RWXdBTXRrClBBNUV3Z3FpaS92SnR6L1p1WWJZL3E4dDVWZEdIUFhGck1TKzZVSmoyWi82MXBtd25NaGxXU1NyYjhrUXVYTmIKa1lqMkRpbzd3K1BTcnhHUFlYWGxkbG8rMmx3UFNVZXp6MmtDYU9teE1TOTdxTHBmSk8yTHJUK3plc3VpMkFpNgpFOHB0SEYwb1NsbnNwUVU0dFBvWnJsZTBQZXIvazd1cEtNUC9WMnVWTG5SZXZOMnVOWEZESjJYSmJzayttS0tmCktVckE3OU9GMzN5NnVxc3pUcjduMlBNL3FPSTJSN21ubDRwbWNXTHl6MmltNHFRR3lvK0VNcG1nTEhsa3c2QXYKUVd4TEZyS2xCL3RNREsybisvMElKWkFSVkdlV1FONHJyelJkOFFJREFRQUJBb0lCQUh3ZEl2K2puczNIRkJYSwpYL3JXbmZOQnJ0KytvbEVrK3M2bDJiUUxtQjZNRU4wV0Z6eE1lQWdvWWlLT2tzM2F5UUtKakRWL3pNN1p1UWJNCjh0eDFnTlk1WHQ1emd5ZXBZVEtBdlUxaWRlVjk2WXNjbll4RFZ1eTM1SlpQa3ZPU3lKR09lekk1MjVLbnpzVGoKNjVTOWJJeGhTS0Zrak9VRWd3cTg1empmRGFBZGtocUswUTVha2kyczQzemtreE50V00xS0ZHUGJ5MXI5TmlVMwo1Wk5VUzJ1V05iZ0xOUFV6clNVSVVKWittZ2tTa1g2YXJVcU9QaXhIV1p4V2dKR3Y1SUhWYzBLQjFYbVJuOWtnClFrbzI1MDRPSkg1Z1h0eVBBYjdua2VMWUlyK3VEUWxuOHhjTmZ5SEFYU1p2d1M5QW51dUxocWVSRGNPZGZOOUEKYWdNS0hWVUNnWUVBN3RuUUdoMzVNR0J2NVlNbGt4Q1IwMENVNnkzZEFtblJaOXJmWmg5Qno4YitFR0FnL2NJWApOazg2NVRvdW95RW14RklmNVN1aFloN0ZFcmI4TkVFM2RNYlJPU2syNlRReU9NTnZUL2JURkMwODJLa0lsQ3lhCnAzaXNLTkxOOHIzVWdGZlZBVnQ2YUpPRVBJcXFhS29LS1haUjZZMjE4Mm9kWmhaTnRZQ0xNc01DZ1lFQTQzUVEKOTdBZUcvSDFwOERDUWxtcWVnUGVNMnk2YXU2bE1Kdk11bFJjYzNhK0p3bWRwa1BWTVhwSWVEVzNBbGg2Tk1DZApncFNIdzIwRHdEUG5BancrRnlabElzMHJZOHc4UHpGMDN4b1BKWjRFeUpiSEFIYm9UWERVYzJWV3pDTUoreWRFClhlRlloUi93NzJaNWNHWTZBVFBoZ3hkNkFxSTFTdjJ0N1g1QStUc0NnWUJOKzFWRFFhZjdFSEZZR01KcXlvMGgKME1NT0tiSXZ1SWJEQnFYTGZNY0s1R2hNeG1YZkU4QnFYZUhYdDNCRW1HMUV5WjlhUGkxNWtKdzlLUHNjd0hJdgpzVDNjRU1XNXkrM2R0SWtpTFc3cTluNFlLcy8vT0xUaG1yZHl1S2krNlJWNU5iUDR0bm8zckhvUEhpTFcrelZJCkpqWkdMNXRKTnNzVWFwSENnWTV3NndLQmdFZHdaUVBtcFE1UjZMNVBwTFFDUmJFZEZlVkErU3dzMkdWMENkRmMKUGMxbU5rTThtZTltenNkRGlROTRqNHFGRDUwU0FtYkpEL3NwZWt3Y0FTcUtrVlhrRVUvazhRUGZXZXpmTTczLwpDVkxmVnRGSnlpY3pNYk5oQk5sWnN2RmE3LythVGJiTzJHYTNxWTBIdW95N0R1emh4cXJON054MjVoWXZwems0CnRsK1JBb0dCQUxDamUxSlR3bzNHVGh0R05PblFvRlV4ZDlja1J6WmZ4cVVpdXZPSHM4WGF5Y3Fja2xIZnp2WjcKY0lNNzE4dFUvYTlxNGd0UEpGRlNoUC92ZFprdEY3Z1lsMnhJNTdTTXlnY0Q4NmZZbFRodnladnpZL1FrMDhGaQp4czV2ZmRET3NUVHNOa2NMRjQzQnlOM0ZadEZKQkNZZmpLc0FRc0JRemlwSGxqenREZmNCCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg== From e0a73aa1d1677a9dab0845ad06cac7d96e5728c6 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Wed, 12 Apr 2023 08:17:23 +0100 Subject: [PATCH 11/14] cleanup Signed-off-by: James Milligan --- kuttl-test-local.yaml | 2 +- kuttl-test.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kuttl-test-local.yaml b/kuttl-test-local.yaml index a2082a101..5769b5f65 100644 --- a/kuttl-test-local.yaml +++ b/kuttl-test-local.yaml @@ -3,4 +3,4 @@ kind: TestSuite crdDir: ./config/crd/bases testDirs: - ./test/e2e/kuttl/scenarios/ -timeout: 30 \ No newline at end of file +timeout: 300 \ No newline at end of file diff --git a/kuttl-test.yaml b/kuttl-test.yaml index 16f16f181..c76198704 100644 --- a/kuttl-test.yaml +++ b/kuttl-test.yaml @@ -3,5 +3,5 @@ kind: TestSuite crdDir: ./config/crd/bases testDirs: - ./test/e2e/kuttl/scenarios/ -timeout: 30 +timeout: 300 skipDelete: true From 9204fcd17a0e342e098cf2531f98874d25294ad2 Mon Sep 17 00:00:00 2001 From: James Milligan Date: Wed, 12 Apr 2023 08:17:52 +0100 Subject: [PATCH 12/14] cleanup Signed-off-by: James Milligan --- out.yaml | 124 ------------------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 out.yaml diff --git a/out.yaml b/out.yaml deleted file mode 100644 index 21e300f6f..000000000 --- a/out.yaml +++ /dev/null @@ -1,124 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - creationTimestamp: "2023-04-04T13:44:11Z" - generateName: flagd-query-test- - labels: - controller-uid: e1949dfe-8c25-43dd-a6ea-b42069bc1014 - job-name: flagd-query-test - name: flagd-query-test-txqwc - namespace: kuttl-test-master-ox - ownerReferences: - - apiVersion: batch/v1 - blockOwnerDeletion: true - controller: true - kind: Job - name: flagd-query-test - uid: e1949dfe-8c25-43dd-a6ea-b42069bc1014 - resourceVersion: "5772" - uid: e103e137-9a8f-452a-855d-ed509b14bfcc -spec: - containers: - - args: - - /bin/sh - - -ec - - | - STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "open-feature-e2e-failtest-service:40000/schema.v1.Service/ResolveBoolean" -d "{\"flagKey\":\"simple-flag\",\"context\":{}}" -H "Content-Type: application/json") - if [ "$STATUS_CODE" -eq 200 ]; then - echo "Expected curl to nginx reverse proxy to return non 200 status code when openfeature.dev/enabled annotation is false." - exit 1 - fi - exit 0 - image: curlimages/curl:7.72.0 - imagePullPolicy: IfNotPresent - name: test-flagd-endpoint - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/run/secrets/kubernetes.io/serviceaccount - name: kube-api-access-87rzj - readOnly: true - dnsPolicy: ClusterFirst - enableServiceLinks: true - nodeName: kind-control-plane - preemptionPolicy: PreemptLowerPriority - priority: 0 - restartPolicy: Never - schedulerName: default-scheduler - securityContext: {} - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - tolerations: - - effect: NoExecute - key: node.kubernetes.io/not-ready - operator: Exists - tolerationSeconds: 300 - - effect: NoExecute - key: node.kubernetes.io/unreachable - operator: Exists - tolerationSeconds: 300 - volumes: - - name: kube-api-access-87rzj - projected: - defaultMode: 420 - sources: - - serviceAccountToken: - expirationSeconds: 3607 - path: token - - configMap: - items: - - key: ca.crt - path: ca.crt - name: kube-root-ca.crt - - downwardAPI: - items: - - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - path: namespace -status: - conditions: - - lastProbeTime: null - lastTransitionTime: "2023-04-04T13:44:11Z" - reason: PodCompleted - status: "True" - type: Initialized - - lastProbeTime: null - lastTransitionTime: "2023-04-04T13:44:11Z" - reason: PodCompleted - status: "False" - type: Ready - - lastProbeTime: null - lastTransitionTime: "2023-04-04T13:44:11Z" - reason: PodCompleted - status: "False" - type: ContainersReady - - lastProbeTime: null - lastTransitionTime: "2023-04-04T13:44:11Z" - status: "True" - type: PodScheduled - containerStatuses: - - containerID: containerd://ed2b63a1e959eb1829f92f289fd64fba4a28b43a1bfe18fe5756ff9a2214a8dd - image: docker.io/curlimages/curl:7.72.0 - imageID: docker.io/curlimages/curl@sha256:bd5bbd35f89b867c1dccbc84b8be52f3f74dea20b46c5fe0db3780e040afcb6f - lastState: {} - name: test-flagd-endpoint - ready: false - restartCount: 0 - started: false - state: - terminated: - containerID: containerd://ed2b63a1e959eb1829f92f289fd64fba4a28b43a1bfe18fe5756ff9a2214a8dd - exitCode: 0 - finishedAt: "2023-04-04T13:44:13Z" - reason: Completed - startedAt: "2023-04-04T13:44:13Z" - hostIP: 172.18.0.2 - phase: Succeeded - podIP: 10.244.0.46 - podIPs: - - ip: 10.244.0.46 - qosClass: BestEffort - startTime: "2023-04-04T13:44:11Z" From d32f22f86fd9ab70478c3f81716aee0a2a44a1fb Mon Sep 17 00:00:00 2001 From: James Milligan Date: Wed, 12 Apr 2023 08:18:49 +0100 Subject: [PATCH 13/14] cleanup Signed-off-by: James Milligan --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 00b1bad86..898c56023 100644 --- a/renovate.json +++ b/renovate.json @@ -56,7 +56,7 @@ "extractVersionTemplate": "^flagd/(?.*)$" }, { - "fileMatch": ["^controllers/core/flagsourceconfiguration/controller.go$"], + "fileMatch": ["^controllers/core/flagsourceconfiguration/flagd-proxy.go$"], "matchStrings": ["\"(?.*?)\" \\/\\/FLAGD_PROXY_TAG_RENOVATE"], "depNameTemplate": "open-feature/flagd", "datasourceTemplate": "github-releases", From 2a5f6a20b3308389c8b0ffc724b77e007f15bdae Mon Sep 17 00:00:00 2001 From: James Milligan Date: Wed, 12 Apr 2023 08:29:57 +0100 Subject: [PATCH 14/14] cleanup Signed-off-by: James Milligan --- test/e2e/kuttl/inject-flagd/01-assert.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e/kuttl/inject-flagd/01-assert.yaml b/test/e2e/kuttl/inject-flagd/01-assert.yaml index 53099eb7c..8084d8124 100644 --- a/test/e2e/kuttl/inject-flagd/01-assert.yaml +++ b/test/e2e/kuttl/inject-flagd/01-assert.yaml @@ -1,3 +1,4 @@ + apiVersion: v1 kind: Pod metadata: