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

Adjust connection controller and how it handles the license and network policy #3601

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tmjd
Copy link
Member

@tmjd tmjd commented Nov 19, 2024

Description

For PR author

  • Tests for change.
  • If changing pkg/apis/, run make gen-files
  • If changing versions, run make gen-versions

For PR reviewers

A note for code reviewers - all pull requests must have the following:

  • Milestone set according to targeted release.
  • Appropriate labels:
    • kind/bug if this is a bugfix.
    • kind/enhancement if this is a a new feature.
    • enterprise if this PR applies to Calico Enterprise only.

// Ensure the allow-tigera tier exists, before rendering any network policies within it.
includeV3NetworkPolicy := false
// Ensure the allow-tigera tier exists and can support enterprise policy, before rendering any network policies within it.
includeEgressNetworkPolicy := false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current implementation gates whether or not we try to render network policy based on whether the tier is present. I'm wondering if we should just change this so that it gates based on whether the license is present.

I think this achieves the same result as what you've suggested, but the code would read a bit simpler. We would switch the tier check and the license check, e.g.

	includeV3NetworkPolicy := false
	if license, err := utils.FetchLicenseKey(ctx, r.Client); err != nil {
		if !k8serrors.IsNotFound(err) {
                   // error
		}	
	} else {
		includeV3NetworkPolicy = true


		if err := r.Client.Get(ctx, client.ObjectKey{Name: networkpolicy.TigeraComponentTierName}, &v3.Tier{}); err != nil {
			// error
		}

		if egressAccessControlRequired(managementClusterConnection.Spec.ManagementClusterAddr, r.resolvedPodProxies, log) {
			if !utils.IsFeatureActive(license, common.EgressAccessControlFeature) {
				// error
			}
		}
	}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants