Skip to content

Releases: Azure/azure-service-operator

v2.0.0-beta.0

12 Apr 23:11
a3460d9
Compare
Choose a tag to compare

Release notes

  • Added v1beta versions of all resources.
  • Added support for Azure generated secrets. Azure generated secrets are supported for the following resources:
    • storage.StorageAccount
    • cache.Redis
    • documentdb.DatabaseAccount
  • Added support for the following new resources:
    • storage.StorageAccountsManagementPolicy
  • Documentation improvements:
    • Added CRD reference documentation. See for example the authorization.azure.com reference docs.
    • Document ASO's usage of Condition's (#2130).
    • Improved readability of supported resources page (#2221)
  • Added Helm chart.
  • Enabled tracking of various Azure specific metrics in addition to built-in controller-runtime metrics (#2180).
  • Updated version of controller-runtime, controller-gen, and envtest (#2217).
  • Bug fixes:
    • Fixed a bug where the Ready Condition of a resource was not set in some error cases (#2098).
    • Fixed a bug where some errors were incorrectly classified as a warning when they were actually fatal (#2108).
    • Fixed a bug where resources with required fields weren't correctly being rejected when those fields were not included (#2126).
    • Fixed a bug where some Status types had kubebuilder validations (#2148).
    • Fixed a bug where a VNET update could unexpectedly delete subnets in that VNET (#2169).
    • Fixed a bug where invalid code could be generated for resources with multiple versions and complex relationships between those versions (#2186, #2201)

Upcoming deprecations

The v1alpha1 resources will be deprecated no sooner than v2.0.0-beta.2.

Please migrate away from these resources by updating the apiVersion to the corresponding v1beta... API. See supported resources for details about the specific apiVersion to use for each type of resource.

1.0.39435

04 Apr 15:52
fbe8fe1
Compare
Choose a tag to compare

Changes:

  • cfb40ee Make elastic pool id configurable on Azure SQL DB (#2184)

This list of changes was auto generated.

v2.0.0-alpha.6

15 Feb 23:49
25513e2
Compare
Choose a tag to compare
v2.0.0-alpha.6 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Breaking changes

Replaced raw secrets with references to Kubernetes secrets

Replaced properties containing raw secrets (passwords, SSH keys, etc) with references to Kubernetes secrets.
This change is not backwards compatible. We realize that breaking changes are difficult for users, but felt that it was better to make this change now in alpha than delay. In this case, the change has significant positive security implications.

The following resources were impacted:

  1. dbformysql.azure.com/v1alpha1api20210501/FlexibleServer: Property administratorLoginPassword
  2. dbforpostgresql.azure.com/v1alpha1api20210601/FlexibleServer: Property administratorLoginPassword
  3. compute.azure.com/v1alpha1api20201201/VirtualMachine: Property osProfile.AdminPassword
  4. compute.azure.com/v1alpha1api20201201/VirtualMachineScaleSet: Property virtualMachineProfile.osProfile

Migration

The migration path for each of these resources is the same:

  1. Ensure that the version of ASO you are running is alpha-6 or later.
  2. Mark the existing resource with annotation serviceoperator.azure.com/reconcile-policy=detach-on-delete.
  3. Delete the resource with kubectl delete. This won't delete the resource in Azure due to the above annotation.
  4. Create a Kubernetes secret containing the value which was previously directly in the resource spec (for example the administratorLoginPassword). This secret must be in the same namespace as where the resource will be created.
  5. Update the resource YAML to refer to the secret. See the example.
  6. kubectl apply the updated resource YAML. This will adopt the resource that already exists in Azure (left from step 3).

Release notes

  • Added support for the following new resources:
    • ContainerRegistry resource (#2074)
    • Compute/Image (#2090)
    • Compute/Snapshot (#2090)
  • Stop using specHash optimization - reconcile should always PUT to Azure (#2202)
  • Turn off Go client retries (#2033)
  • Added support for the reconcile-policy annotation (#2060)
  • Simplify configuration of which resources to export (#2071)
  • Add support for resource extensions generation (#2064)

New Contributors

Full Changelog: v2.0.0-alpha.5...v2.0.0-alpha.6

v2.0.0-alpha.5

20 Dec 04:17
58c23e4
Compare
Choose a tag to compare
v2.0.0-alpha.5 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Release notes

  • Fixes the conversion webhook bug in the previous release YAML that prevented creation of resources. See #2018 for more information.
  • Added support for the following new resources:
    • EventGrid:
      • Domain
      • DomainsTopic
      • EventSubscription

Full Changelog: 2.0.0-alpha.4...2.0.0-alpha.5

v2.0.0-alpha.4

09 Dec 03:40
965416a
Compare
Choose a tag to compare
v2.0.0-alpha.4 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Breaking changes

This release has two breaking changes that will affect existing deployments of the v2 Azure service operator. The ASO team realize that this is inconvenient for existing users, but decided that making the changes now while the operator is in alpha is better than trying to make them post-beta (or never making them). There are migration steps listed for each change.

API group change

The microsoft. prefix for Azure resources has been removed because it's redundant (since the groups are all under azure.com). For example, the YAML for a CosmosDB DatabaseAccount now starts with:

apiVersion: documentdb.azure.com/v1alpha1api20210515
kind: DatabaseAccount

Previously it was:

apiVersion: microsoft.documentdb.azure.com/v1alpha1api20210515
kind: DatabaseAccount

To migrate existing resources from the old API group to the new one, use the following steps:

  1. Apply this release's operator YAML - this will create the new CRDs and update the deployment to use the new image. Ensure that any pods for the previous version of the operator have stopped. This will avoid the Azure resources being deleted when we clean up the old Kubernetes resources in step 4.
  2. Edit the source YAML used to deploy the existing resources to have the new API group (for example documentdb.azure.com rather than microsoft.documentdb.azure.com).
  3. Apply the updated YAML for the resources. These will be linked to the existing Azure resources.
  4. For each old microsoft. resource, remove its serviceoperator.azure.com/finalizer and then delete it. You can find the resources with this command:
    kubectl api-resources -o name | grep 'microsoft\..*\.azure\.com' | paste -sd "," - | xargs kubectl get -A
    This is safe at this point because the alpha.4 version of the operator is only watching resources for the new non-microsoft. CRDs.
  5. Delete the old microsoft. CRDs with:
    kubectl api-resources -o name | grep 'microsoft\..*\.azure\.com' | xargs kubectl delete customresourcedefinition

Removing namespace from resource references

The namespace field on resource references (for example vnetSubnetIDReference on ManagedClustersAgentPool) has been removed, following the Kubernetes Architecture SIG's recommendations on object references.

If you have resources with references to resources in a different namespace, edit the YAML of the reference to use the ARM ID of the resource in Azure rather than the group/kind/namespace/name of the resource in the Kubernetes cluster.

Release notes

  • Added support for the following new resources:
    • PostgreSQL FlexibleServersConfiguration
    • SignalR
    • MySQL:
      • FlexibleServer
      • FlexibleServersDatabase
      • FlexibleServersFirewallRule
    • Application Insights:
      • Webtest
      • Component
    • Redis:
      • Redis
      • RedisLinkedServer
      • RedisFirewallRule
      • RedisPatchSchedule
      • RedisEnterprise
      • RedisEnterpriseDatabase

Full Changelog: v2.0.0-alpha.3...v2.0.0-alpha.4

v2.0.0-alpha.3

02 Nov 00:47
ac280b5
Compare
Choose a tag to compare
v2.0.0-alpha.3 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Release notes

  • Added support for the following new resources:
    • EventGrid Topic
    • EventHub:
      • Namespace
      • NamespacesAuthorizationRule
      • NamespacesEventhub
      • NamespacesEventhubsAuthorizationRule
      • NamespacesEventhubsConsumerGroup
    • VirtualMachine
    • NetworkInterface
  • Added a new Documentation site
  • Added condition severity to Azure resources' print columns
  • Support deploying ASOv2 alongside v1 in the same cluster
  • Support running the operator with a managed identity rather than service principal

Full Changelog: v2.0.0-alpha.2...v2.0.0-alpha.3

v2.0.0-alpha.2

14 Oct 22:46
f3284b1
Compare
Choose a tag to compare
v2.0.0-alpha.2 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Release notes

  • Added support for the following new resources:
    • Cosmos DB:
      • MongodbDatabase
      • MongodbDatabaseCollection
      • SqlDatabase
      • SqlDatabaseContainer
      • SqlDatabaseContainerTrigger
      • SqlDatabaseContainerStoredProcedure
      • SqlDatabaseContainerUserDefinedFunction
    • PostgreSQL:
      • FlexibleServer
      • FlexibleServersDatabase
      • FlexibleServersFirewallRule
    • RoleAssignment
  • Moved the code generator and controller from hack folder to new v2 folder so they are much easier to find.
  • Ported support for operator-per-namespace multitenancy to the v2 operator. This enables running multiple ASO deployments in one cluster watching different namespaces and using different credentials.
  • Improved error reporting in logging and resource conditions.

Full Changelog: v2.0.0-alpha.1...v2.0.0-alpha.2

v2.0.0-alpha.1

15 Sep 01:41
7caa90e
Compare
Choose a tag to compare
v2.0.0-alpha.1 Pre-release
Pre-release

This version is unsupported. To try it out, follow the instructions in the README. After installation, you can see the usage instructions for how to get started.

Release notes

  • Added support for the following new resources:
    • NeworkSecurityGroup
    • NetworkSecurityGroupsSecurityRule
    • UserAssignedIdentity
    • AKS ManagedCluster
    • AKS ManagedClustersAgentPool
  • Removed kubebuilder validations on Status resources. These validations could sometimes prevent the operator from saving status.
  • Optimize controller back-off for the cloud (starts out slower, but doesn't back off quite as much as before so that we catch changes faster even once we've reached full back-off).
  • Prevent controller reconciliation when only the Status of a resource has been changed.
  • Improved the error message returned to users if the Owner is missing or pointing to a resource of the wrong type.
  • Improved log messages written by the controller.
  • Fixed bug with ResourceReference regex that incorrectly prevented some valid ARM IDs from being specified.

1.0.28631: Fix conversion webhooks in operator bundle (#1765)

31 Aug 05:15
4fb3081
Compare
Choose a tag to compare

Changes:

See More

This list of changes was auto generated.

v2.0.0-alpha.0

12 Aug 01:11
98d093e
Compare
Choose a tag to compare
v2.0.0-alpha.0 Pre-release
Pre-release

First release of the v2.0.0-alpha series.

This version is unsupported. To try it out:

  1. Install cert-manager, follow step #1 in the old quickstart.
  2. Download the YAML file attached to this release and run kubectl apply -f <filename>.
  3. Create the appropriate secrets. Firstly, create a Service Principal according to step #3 in the old quickstart. After setting the appropriate environment variables, run:
    $ cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: aso-controller-settings
      namespace: azureoperator-system
    stringData:
      AZURE_SUBSCRIPTION_ID: "$AZURE_SUBSCRIPTION_ID"
      AZURE_TENANT_ID: "$AZURE_TENANT_ID"
      AZURE_CLIENT_ID: "$AZURE_CLIENT_ID"
      AZURE_CLIENT_SECRET: "$AZURE_CLIENT_SECRET"
    EOF

For further instructions, see the README.