Skip to content

Propose Windows operator updates #3113

Description

@jsturtevant

Expected Behavior

I would like to be able to install the operator with and Installation CRD that enables me to create a cluster including Windows nodes with no manual steps.

Current Behavior

Following the documentation, I have additional steps after my cluster is running:

  1. Configure IPAM affinity
  2. Query my cluster to get the API server address (https://docs.tigera.io/calico/latest/getting-started/kubernetes/windows-calico/operator#operator-installation) and create a kubernetes-services-endpoint

Possible Solution

  1. Provide a new field in the Installation CRD that tells the operator to make sure this is turned on.
  2. The docs mentions that some clusters create a CM for kube-proxy (Kubeadm deployments for example), If this is present (maybe can make the CM name configurable in Installation CRD) then query and auto create (if not present) the kubernetes-services-endpoint. I think this is common enough set up (Kubeadm, maybe others?) to try for this type of automation and still provides ability to customize.

I did a small prototype of and tested with capz's deployment. Some things could be cleaned up and might not have everything in the right place on the Installation CRD.

release-v1.32...jsturtevant:operator:windows-updates
projectcalico/calico@release-v3.27...jsturtevant:calico:windows-updates

Example changes to helm (and Installation CRD):

installation:
  cni:
    type: Calico
    ipam:
      strictAffinity: true
      type: Calico
  calicoNetwork:
    bgp: Disabled
    mtu: 1350
    ipPools:
    - cidr: 192.168.0.0/16
      encapsulation: VXLAN
    windowsDataplane: HNS
  serviceCIDRs: 
    - 10.96.0.0/12 # must match cluster service CIDR (this is the default)
  registry: docker.io/
# Image and registry configuration for the tigera/operator pod.
tigeraOperator:
  image: tigera-operator
  registry: jsturtevant
  version: latest
calicoctl:
  image: mcr.microsoft.com/oss/calico/ctl

Steps to Reproduce (for bugs)

Follow the docs at https://docs.tigera.io/calico/latest/getting-started/kubernetes/windows-calico/operator

Context

I am updating CAPZ to support the new Calico 3.27 version. We install the operator via a helm chart and want to be able to deploy the helm and ensure the cluster starts with out needing additional manual steps (or even via scripts).

kubernetes-sigs/cluster-api-provider-azure#4435

Your Environment

  • Operating System and version:
  • Link to your project (optional):

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions