Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CRD changes for 2.1.0 release of the operator #728

Merged
merged 42 commits into from
Mar 6, 2024
Merged

CRD changes for 2.1.0 release of the operator #728

merged 42 commits into from
Mar 6, 2024

Commits on Dec 20, 2023

  1. Add restore parameters to v1 API (#640)

    - add `RestorePointPolicy` type in `Spec`
      - `Archive` must be specified if a restore is intended
    - one of `ID` and `Index` must be specified (`Index` assumed to be
    1-based)
    - webhook rules to validate `RestorePointPolicy`
    - revivedb_reconciler checks whether restore is supported given the
    server version and deployment method
      - must use vclusterops and has server version greater than v24.2.0
    
    ---------
    
    Co-authored-by: Roy Paulin <[email protected]>
    jizhuoyu and roypaulin authored Dec 20, 2023
    Configuration menu
    Copy the full SHA
    d10d15b View commit details
    Browse the repository at this point in the history
  2. Add empty controller and API for VerticaRestorePoints (#643)

    This PR build out the stub for an empty controller to handle the
    VerticaRestorePointsQuery API. It does not include a webhook, as there
    are no defined rules for transitioning the Custom Resource (CR), given
    that the spec portion contains only two fields. The operator can observe
    the new API, initiate a reconciliation iteration, and take no action, as
    we have set nil for the actors during this implementation phase
    
    ---------
    
    Co-authored-by: Matt Spilchen <[email protected]>
    chinhtranvan and Matt Spilchen authored Dec 20, 2023
    Configuration menu
    Copy the full SHA
    2abd8f1 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2023

  1. Fix webhook bug so that negative index values are denied (#648)

    - Fix webhook bug so that negative index values are denied
    - Fix revivedb reconciler so that only the first letter of the first
    word is captitalized
    
    ---------
    
    Co-authored-by: Roy Paulin <[email protected]>
    jizhuoyu and roypaulin authored Dec 21, 2023
    Configuration menu
    Copy the full SHA
    6c69f99 View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2024

  1. Correct comment typo

    jizhuoyu committed Jan 2, 2024
    Configuration menu
    Copy the full SHA
    7bfeae7 View commit details
    Browse the repository at this point in the history
  2. Correct comment typo

    jizhuoyu committed Jan 2, 2024
    Configuration menu
    Copy the full SHA
    3374964 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Jan 5, 2024
    Configuration menu
    Copy the full SHA
    61ad3a7 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2024

  1. Support revive from a restore point in operator (#656)

    - pass restorePoint configuration from VerticaDB CR to vclusterops while
    we revive
    - new e2e test for reviving from a restore point
    jizhuoyu authored Jan 9, 2024
    Configuration menu
    Copy the full SHA
    eea3cdd View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2024

  1. implement status condition transitions for vertica restore points que…

    …ry cr (#658)
    
    In the VerticaRestorePointsQuery CRD we have status conditions to know
    when the query has started and when it has finished.
    
      conditions:
      - lastTransitionTime: <ts>
        status: "True"
        type: Querying
      - lastTransitionTime: <ts>
        status: "True"
        type: QueryComplete
    
    This PR can add the status condition logic as follows:
    - skip reconcile if QueryComplete is true
    - set Querying status condition prior to calling vclusterops API
    - clear Querying status condition after calling API. Include an error
    message in the status condition if the API fails.
    - set the QueryComplete if the vclusterops API suceeded
    chinhtranvan authored Jan 11, 2024
    Configuration menu
    Copy the full SHA
    d67b6d0 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Jan 22, 2024
    Configuration menu
    Copy the full SHA
    020ec09 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Jan 23, 2024
    Configuration menu
    Copy the full SHA
    9357488 View commit details
    Browse the repository at this point in the history
  2. retrieve communal storage info for VerticaRestorePointsQuery CR (#671)

    This PR will fetch the VerticaDB to collect this information from a
    VerticaDB for the new VerticaRestorePointsQuery CR, and extract out the
    config information to pass down to the vclusterops API.
    
    ---------
    
    Co-authored-by: Matt Spilchen <[email protected]>
    chinhtranvan and Matt Spilchen authored Jan 23, 2024
    Configuration menu
    Copy the full SHA
    e6be5e2 View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Jan 26, 2024
    Configuration menu
    Copy the full SHA
    e7c4e00 View commit details
    Browse the repository at this point in the history

Commits on Jan 27, 2024

  1. Configuration menu
    Copy the full SHA
    a53e4e5 View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2024

  1. Handle ReviveDBRestorePointNotFound error (#675)

    - operator now handles ReviveDBRestorePointNotFound error returned from
    vclusterops
    - e2e test for invalid id and index
    - e2e test for cluster scaling before restoring
    
    ---------
    
    Co-authored-by: Matt Spilchen <[email protected]>
    jizhuoyu and Matt Spilchen authored Jan 28, 2024
    Configuration menu
    Copy the full SHA
    783f5c5 View commit details
    Browse the repository at this point in the history
  2. Add custom print columns for VerticaRestorePointsQuery (#680)

    This PR adds custom print columns for the new VerticaRestorePointsQuery
    CR, so that a kubectl get vrpq command tells you if the query has
    completed.
    chinhtranvan authored Jan 28, 2024
    Configuration menu
    Copy the full SHA
    e9fb265 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2024

  1. Add empty controller and API for VerticaScrutinize (#686)

    This PR build out the stub for an empty controller to handle the
    VerticaScrutinize API. For now The operator can observe the new API,
    initiate a reconciliation iteration, and take no action, as we have set
    nil for the actors during this implementation phase
    roypaulin authored Feb 1, 2024
    Configuration menu
    Copy the full SHA
    1a20555 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2024

  1. Configuration menu
    Copy the full SHA
    97395e3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    29dfc97 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 5, 2024
    Configuration menu
    Copy the full SHA
    0b3942d View commit details
    Browse the repository at this point in the history
  2. Implement controller logic for VerticaRestorePointsQuery (#693)

    As we discussed, this task is divided into two parts. This PR completed
    the first part, which involved calling the vclusterops API to perform
    the restore points query. A follow-up task to copy the result of the
    query into the CRs status fields will be processed later
    chinhtranvan authored Feb 5, 2024
    Configuration menu
    Copy the full SHA
    33e0be1 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2024

  1. Implement controller logic for VerticaRestorePointsQuery Part 2 (#695)

    This PR represents the second piece of implementing controller logic for
    VerticaRestorePointsQuery. It involves copying the result of the query
    into the status fields of VerticaRestorePointsQuery CR
    chinhtranvan authored Feb 7, 2024
    Configuration menu
    Copy the full SHA
    d4ed57a View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2024

  1. Merge 'main' into vnext

    chinhtranvan committed Feb 12, 2024
    Configuration menu
    Copy the full SHA
    f6b8f3d View commit details
    Browse the repository at this point in the history
  2. Make status fields not required for showing restore points (#699)

    This includes a few updates to the vcluster API
    
    - Update to function signature for VReviveDB
    - Update Restore Point struct to make status fields not required
    chinhtranvan authored Feb 12, 2024
    Configuration menu
    Copy the full SHA
    06648ba View commit details
    Browse the repository at this point in the history
  3. Generate pod for scrutinize (#696)

    This adds the logic to generate a dummy pod when a VSCR CR is created.
    It does the following:
      -  checks if the VerticaDB specified in Vscr exists
    - checks the server version and abort reconciliation if version is too
    old
      - creates a pod
    
    For now the pod does not run scrutinize, the logic for that will be
    added on a follow-up PR. The pod composed of 2 containers, an init
    container (that will collect scrutinize container later) and a main
    container. Both run hard-coded image (busybox) and respectively sleep
    for 5s and for infinity.
    We also set some fields(initContainers, Volume,...) with values from
    Vscr.
    roypaulin authored Feb 12, 2024
    Configuration menu
    Copy the full SHA
    be6905b View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    971d9d3 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    1153b0b View commit details
    Browse the repository at this point in the history
  3. Resolve merge conflicts

    The control-plane: controller-manager label changed in the last merge.
    Updating test cases that exist only on the vnext branch.
    Matt Spilchen committed Feb 14, 2024
    Configuration menu
    Copy the full SHA
    3c1f027 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2024

  1. Filter restore points in vrpq (#703)

    - update vrpq CRD to support filtering options for archive name, and
    start and end timestamps
    - update e2e test to test for the archive name filter and timestamps
    filters
    
    ---------
    
    Co-authored-by: spilchen <[email protected]>
    jizhuoyu and spilchen authored Feb 15, 2024
    Configuration menu
    Copy the full SHA
    ccb0ee7 View commit details
    Browse the repository at this point in the history
  2. Block access to VerticaRestorePointsQuery for incompatible VerticaDBs (

    …#700)
    
    This PR adds some checks for the new VerticaRestorePointsQuery CR. The
    VerticaDB should be running with a minimum version of 24.2.0 and should
    be deployed with vclusterOps. We don't support admintools deployments
    chinhtranvan authored Feb 15, 2024
    Configuration menu
    Copy the full SHA
    daedd6d View commit details
    Browse the repository at this point in the history
  3. Filter restore points by date only timestamps (#707)

    - add e2e test for date-only timestamps
    
    ---------
    
    Co-authored-by: spilchen <[email protected]>
    jizhuoyu and spilchen authored Feb 15, 2024
    Configuration menu
    Copy the full SHA
    6a47d53 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2024

  1. Create webhook for VerticaRestorePointQuery CR (#709)

    This PR creates a webhook for the new VerticaRestorePointQuery CR to
    catch the checks early. There is some webhook part that is added in
    #643."
    chinhtranvan authored Feb 17, 2024
    Configuration menu
    Copy the full SHA
    6d1929e View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2024

  1. Run scrutinize in its own pod (#706)

    When a VerticaScrutinize resource is created, the operator:
    - collects some info from the specified VerticaDB in order to construct
    vcluster scrutinize command arguments
    - builds the scrutinize podspec. That pod will shares the same
    serviceaccount, podsecuritycontext, image as vertica pods.
    - adds some env vars to the podspec needed by nma and also 2 new env
    vars(`PASSWORD_NAMESPACE`, `PASSWORD_NAME`) to allow vcluster scrutinize
    to read the db password from secret.
    
    Once the pod is created, a new reconciler(`PodPollingReconciler`) will
    wait for scrutinize to finish and update status condition
    roypaulin authored Feb 20, 2024
    Configuration menu
    Copy the full SHA
    e25a090 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d169b53 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2024

  1. Merge main into vnext (#715)

    This pulls in the latest changes from main into vnext. There are a lot
    of changes here because of the copyright year change.
    
    ---------
    
    Signed-off-by: GitHub <[email protected]>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: spilchen <[email protected]>
    3 people authored Feb 21, 2024
    Configuration menu
    Copy the full SHA
    c0171f9 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    91b194f View commit details
    Browse the repository at this point in the history
  2. Set resources for scrutinize main container (#718)

    this give users a way to set the main container resources through
    annotations. The main container resources remain unset unless the
    resources are set for the init container too.
    
    The annotations are as follow:
    ```
    vertica.com/scrutinize-main-container-resources-limits-cpu
    vertica.com/scrutinize-main-container-resources-limits-memory
    vertica.com/scrutinize-main-container-resources-requests-cpu
    vertica.com/scrutinize-main-container-resources-requests-memory
    ```
    roypaulin authored Feb 22, 2024
    Configuration menu
    Copy the full SHA
    a6d3a35 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 28, 2024
    Configuration menu
    Copy the full SHA
    c1b3913 View commit details
    Browse the repository at this point in the history

Commits on Feb 29, 2024

  1. Merge branch 'main' into vnext

    Matt Spilchen committed Feb 29, 2024
    Configuration menu
    Copy the full SHA
    895d624 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2024

  1. Configuration menu
    Copy the full SHA
    1b93dc3 View commit details
    Browse the repository at this point in the history
  2. Resurface scrutinize tarball name (#720)

    This caches the tarballName in our VSCR status after a successful
    scrutinize run. The generated tarball name follow a specific format
    needed by `grasp`. To access the tarball name between reconcilers, we
    cache it in the scrutinize pod annotations.
    roypaulin authored Mar 4, 2024
    Configuration menu
    Copy the full SHA
    054d65d View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. Add changie

    Matt Spilchen committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    dc52fb6 View commit details
    Browse the repository at this point in the history
  2. Surface podName and state when running 'kubectl get vscr' (#729)

    Now when you have a VerticaScrutinize CR created, if you do kubectl get,
    you will get info about the scrutinize pod name and the state of the
    scrutinize run. The state is `Ready`, `PodCreated`,
    `ScrutinizeInProgress`, `ScrutinizeSucceeded` if successful and
    `NotReady:<reason>`, `PodCreationFailed`, `ScrutinizeFailed` in case of
    a failed run.
    
    kubectl get vscr will look like this:
    ```
    NAME                       STATE                 POD                        AGE
    verticascrutinize-sample   ScrutinizeSucceeded   verticascrutinize-sample   84m
    ```
    roypaulin authored Mar 5, 2024
    Configuration menu
    Copy the full SHA
    ae02b7b View commit details
    Browse the repository at this point in the history