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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

prateek010
Copy link

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!

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.

1 participant