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

Feat/single operator binary#40

Merged
nxtcoder17 merged 8 commits into
release-1.0.5from
feat/single-operator-binary
Nov 22, 2023
Merged

Feat/single operator binary#40
nxtcoder17 merged 8 commits into
release-1.0.5from
feat/single-operator-binary

Conversation

@nxtcoder17
Copy link
Copy Markdown
Member

@nxtcoder17 nxtcoder17 commented Nov 22, 2023

This pull request introduces several improvements and fixes:

fixes #37
fixes #38

  • fix(apis/crds): adding graphql tags to types (Commit ca20ff7):

    • Adds GraphQL tags, specifically "noinput," to status types in CRDsv1 types.
  • fix(cmd/platform-operator): fixes Container image (Commit 4228be0):

    • Updates the Container image for the redpanda operator to include bash and rpk binaries, ensuring proper functionality.
  • fix(pkg/operator): updates to PostReconcile log (Commit 8adacb8):

    • Enhances handling of isReady and lastReadyGeneration.
    • Introduces a profiling library for easy CPU and memory profiling.
  • fix(operators/helm-charts): job RBAC updates (Commit a436391):

    • Helm chart operator now runs jobs in the same namespace as the Helm chart resource.
    • RBAC handling improvements include the creation of a new service account (helm-job-svc-account) in each namespace where the Helm chart resource exists.
  • refactor: changes to achieve single binary (Commit 58d8d90):

    • Abstracts reconciliation schemes and binding controllers to the manager into separate packages for each of the operators.
  • feat(operators/clusters, nodepool): AWS assume role (Commit 6086f3c):

    • Cluster controllers now assume roles to create resources.
    • The AWS cloud provider's S3 buckets controller assumes roles to create S3 buckets on tenant clusters.
    • Nodepool controller utilizes IAM instance profiles to assume roles and create resources on tenant clusters.
    • Logging enhancements include trimming log lines by removing caller info unless explicitly passed through options.
    • Added event predicates to filter out events from non-tenant cluster namespaces.
  • feat: cmd/platform-operator is a single binary for operators (Commit 5498509):

    • Transition from separately running and managing each operator to a single monolith operator.
    • This single binary operator attaches to all controllers and runs them together.
    • Refactorings and code changes to accommodate this change are included in this commit.

These changes collectively enhance the functionality, maintainability, and performance of the codebase.

- separately running and managing each operator is good for development
  but not for production.
- using the same codebase, this single monolith operator, just attaches
  to all the controllers and runs them in a single binary.
- refactorings, and code changes to accomodate this change are in this
  commit.

github-issue: #37
- cluster controllers, now assume role to create resources
- account s3 buckets controller, for aws cloud provider, now assumes
  role to create s3 buckets on tenant cluster
- nodepool controller, uses IAM instance profile, to assume role to
  create resources on tenant cluster
- (pkg/logging): log line trimmed by removing caller info, unless explicitly
  passed through options
- (pkg/operator): added event predicate to filter out events from
  non-tenant cluster namespaces

github-issue: #38
- all the reconcilation schemes, and binding controllers to the manager
  has been abstracted into a separate package in each of the operators
- helm chart operator now run jobs in the same namepsace the helm chart
  resource has been created
- RBAC handling has been updated, to work like this:
  + new service account helm-job-svc-account is created in each
    namespace where helm-chart reosurce exists
  + cluster role binding is created only once when it does not exist,
    and the other times it is patched when the desired svc account is
    not listed in cluster role binding subjects
- better handling of isReady, and lastReadyGeneration
- profiling library to make it easy to profile cpu and memory, instead
  of googling everytime
- redpanda operator needs to have bash, and rpk binaries, adds them to
  our base image
-
- graphql tag "noinput" to status types in crdsv1 types
@nxtcoder17 nxtcoder17 self-assigned this Nov 22, 2023
Signed-off-by: Anshuman Bhaskar <nxtcoder17@gmail.com>
@nxtcoder17 nxtcoder17 merged commit b625f13 into release-1.0.5 Nov 22, 2023
@nxtcoder17 nxtcoder17 deleted the feat/single-operator-binary branch November 22, 2023 06:53
abdheshnayak pushed a commit that referenced this pull request Nov 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ aws infrastructures should use assume role configurations ✨ single operator for everything

1 participant