* Add Cosmos DB container for PlatformWorkloadIdentityRoleSets
* Revert change to AKS k8s version - committed by mistake
* Fix bug in converter
When I first wrote the converter, I thought Go would treat the the slice
we `make` few lines above these changes as a slice full of zero-value
structs, but it actually treats it as an empty slice, which led to
out-of-bound issues when I first tried to use this converter to work on
the API endpoints.
* Add the PlatformWorkloadIdentityRoleSetConverter to the API register
* Implement the change feed for role sets in the easiest, most naive way
* Implement the external API endpoint for listing role sets
* Fix a small oversight from earlier on
* Add unit tests for the list endpoint
* Add unit tests for changefeed changes
* Uncomment the static validator
* Fix more slice out of bounds bugs in the converters...
* Add converter and static validator to the admin API register
* Add list and put endpoints
* Fix name of function to match convention
* Fix bug in static validator
I originally wrote the code the way I did so that we could aggregate
errors so that we could provide a better UX in cases where there are
multiple similar errors in the request content. I found while writing
unit tests that aggregating the errors in this way and not wrapping them
in a CloudError causes the RP to return an internal server error instead
of a 400 bad request.
Is there a way we can aggregate the errors and still wrap them in a
CloudError? I'm not sure of the formatting requirements for the text of
CloudErrors.
* Add unit tests for new API endpoints
* Fix typo
* Appease the linter
* Appease the linter
* Add TODO comment re: the number of parameters
* Update static validator to return multiple validation issues at the same time where applicable for better UX
* Add a simple utility function to make semver comparisons of OpenShift minor version more readable
* Log error before returning 500 to user
* Log errors before returning 500 to user
* Improve naming of unit test cases
* Add additional unit test cases
* Wrap Delete call in Eventually to hopefully prevent flakes where Service deletion fails
* Simplify logic and properly handle the case where the Service is not
found during the delete call
* After deleting the Service, confirm that it's gone
* api: Avoid referencing DefaultInstallStream in tests
* frontend: Avoid referencing DefaultInstallStream
The frontend's OpenShiftVersions change feed handler will record
the current default version for the rest of the frontend to use.
* monitor: Remove latestGaMinorVersion metric
The RP no longer has this information internally, so the metric
is no longer relevant.
* update_ocp_versions: Read versions from an environment variable
Read OpenShift versions and pull specs from an OPENSHIFT_VERSIONS
environment variable containing a JSON object. This data includes
the default OpenShift version for new installs that don't specify
a version.
This moves us toward eliminating hard-coded OpenShift versions in
pkg/util/version/const.go.
* cache_fallback_discovery_client_test.go: Hard-code version
I'm not sure what to do with this test. Install stream data has
moved to RP-Config, so if the test is worth keeping then I guess
the oldest supported version will have to be hard-coded and kept
up-to-date. But it probably won't be.
* version: Remove DefaultInstallStreams
DefaultInstallStream will remain for now, but it's ONLY for use by
local development mode until we can come up with a better solution.
---------
Co-authored-by: Matthew Barnes <mbarnes@fedorapeople.org>
* replacing usages of magic strings with flags from the subpackage
* removing the //todo comment regarding the magic strings
* replacing magic strings with operator constants
* move DefaultOperatorFlags to operator package, inject when needed
* If the CredentialsRequest isn't found, retry until timeout instead of immediately erroring out
* `ensureCredentialsRequest` upon every `az aro update`
* Add an E2E test for the `az aro update` scenario where the ARO
operator's CredentialsRequest has been deleted
* add ResourceDeleteAndWait to azureactions
* add delete resource admin action and frontend routing
* add helper functions for lb config manipulation
* refactor azure actions
- moves resource delete code to seperate file
- adds loadbalancer client to handle deleting FrontendIPConfiguration
- updates ResourceDeleteAndWait to handle deleting FrontendIPConfigurations
- adds DeleteByIDAndWait to features/resources client
* add e2e tests
* fix imports and add license headers
* cleanup / fix lint
* add command example to doc
* rename to "managed" resource id
* change query param to camel case
* use var group instead
* return error as adminReply already wraps in CloudError
* fix missed camelCase of query param
* use regex to match frontend ip configurations
* remove focus
* add deny list to prevent deleting PLS and Storage
* fix mixed import
* use fake pls name to prevent accidently deleting e2e cluster pls
* fix test
* add PE to deny list
* Update the cluster authorizer to use a DefaultAzureCredential
* Update the ARO operator to set and use DefaultAzureCredential via env vars
* Add a CredentialsRequest to the ARO operator deployment
* Restart the ARO operator upon `az aro update`
* Removed now unused AzCredentials function
* Changed ARO operator deployment wait time during `az aro update` from
20 minutes -> 5 minutes
* Refactor CliWithApply to generalize to different object types
* Updated Restart in pkg/util/kubernetes to use server-side apply
* Updated Restart in pkg/operator/deploy to only return an error after
at least attempting to restart all of the deployments passed in
* E2E test for ARO operator master deployment's restart upon cluster update
* Wait for the ARO operator's CredentialsRequest to be reconciled before
restarting
* Fix PVC name in PVC status check
* Limit test scope and verify that test works if FIPS is disabled
* Mark test pending again, leave comment about it, and revert debugging
stuff
* swagger: Use struct tags to specify read-only fields
* immutable: Handle `swagger:"readOnly"` tag during validation
The left-hand operand (v) should omit read-only struct fields;
i.e. the field should always be the zero-value for its type.
* api: Add ExternalNoReadOnly method to OpenShiftClusterConverter
ExternalNoReadOnly removes all read-only fields from the external
representation. This is necessary when patching a cluster document;
read-only fields must be omitted from the external representation
in order to pass static validation.
* e2e: Exercise using PUT to update managed outbound IPs
---------
Co-authored-by: Matthew Barnes <mbarnes@fedorapeople.org>
* Add React Router library
* Use React Router for search params
The existing functionality using this appears to be non-functional, but its behavior
is preserved.
* Use cluster resourceID in route for details modal
* Use URL routing to handle Cluster Details navigation
* Route all admin portal frontend subroutes to index.html
* Add handling to portal login redirect to preserve original path
* Update E2E tests for new admin portal routing
* Replace OverviewComponent with new implementation
- Use FluentUI DetailsList for contents
- Always display all properties, even if value is not present
- Modify E2E test to check each individual property
* Build frontend artifacts
* save screenshots more consistently, update to be more BDD
* save the html too
* fix?
* I think there's a race condition here -- use eventually to work around it
* Update admin_portal.go