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

Feature/Support of Oracle Cloud Infrastructure(OCI) for KubeIP. #161

Merged
merged 2 commits into from
Jan 14, 2025

Conversation

prateek010
Copy link
Contributor

Summary

This PR adds support for Oracle Cloud Infrastructure (OCI) to KubeIP, enabling the assignment of static public IPs to Kubernetes nodes running on OCI. This feature expands KubeIP's capabilities beyond Google Cloud and AWS, providing more flexibility for users running their Kubernetes clusters on OCI.

Changes

  1. OCI Assigner Implementation:

    • Added ociAssigner in internal/address/oci.go to handle the assignment of public IPs on OCI.
    • Implemented methods for fetching, assigning, and managing public IPs in OCI.
  2. OCI Network Service:

    • Added ociNetworkService in internal/cloud/oci_network_service.go to interact with OCI's Virtual Network API.
    • Implemented methods for listing, getting, updating, and deleting public IPs.
  3. OCI Instance Service:

    • Added ociInstanceService in internal/cloud/oci_instance_service.go to interact with OCI's Compute API.
    • Implemented methods for listing VNIC attachments and managing instances.
  4. Configuration Updates:

    • Updated chart/values.yaml to include OCI-specific configuration options.
    • Added OCI-specific environment variables and flags in cmd/main.go.
  5. Documentation:

    • Updated README.md to include instructions for deploying KubeIP on OCI.

How to Test

  1. Setup OCI Environment:

    • Ensure you have an OCI account with the necessary permissions.
    • Create a pool of reserved static public IPs in your OCI compartment.
  2. Deploy KubeIP:

    • Follow the updated instructions in the README.md to deploy KubeIP as a DaemonSet on your OCI Kubernetes cluster.
    • Configure the project flag with your OCI compartment OCID and set the appropriate filters.
  3. Verify IP Assignment:

    • Scale the number of nodes in your cluster and verify that KubeIP assigns a static public IP to each node.
    • Check the logs to ensure that KubeIP is correctly interacting with the OCI APIs.

Additional Notes

  • Ensure your OCI policies are correctly configured to allow KubeIP to manage public IPs and instances.
  • This feature has been tested with OCI's default configuration provider. Custom configurations may require additional setup.

Please review the changes and provide feedback. Thank you!

@prakharjoshi
Copy link

@alexei-led If you have some time, can you check this PR? Thanks in advance

Copy link
Contributor

@alexei-led alexei-led left a comment

Choose a reason for hiding this comment

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

The changes look good to me. Although I cannot test this on OCI, it does not affect AWS or GCP, so I will proceed with the merge.

@alexei-led alexei-led merged commit a78270d into doitintl:master Jan 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants