external-dns icon indicating copy to clipboard operation
external-dns copied to clipboard

Implement external provider for EfficientIP SOLIDserver

Open EIP-Laurent opened this issue 3 years ago • 8 comments

Signed-off-by: EIP-Laurent [email protected]

Description

This PR implements the provider interface for EfficientIP's SOLIDserver DNS

Checklist

  • [X] Unit tests updated
  • [X] End user documentation updated

EIP-Laurent avatar Aug 19 '21 14:08 EIP-Laurent

Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA.

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If you signed the CLA as a corporation, please sign in with your organization's credentials at https://identity.linuxfoundation.org/projects/cncf to be authorized.
  • If you have done the above and are still having issues with the CLA being reported as unsigned, please log a ticket with the Linux Foundation Helpdesk: https://support.linuxfoundation.org/
  • Should you encounter any issues with the Linux Foundation Helpdesk, send a message to the backup e-mail support address at: [email protected]

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

k8s-ci-robot avatar Aug 19 '21 14:08 k8s-ci-robot

Welcome @EIP-Laurent!

It looks like this is your first PR to kubernetes-sigs/external-dns 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/external-dns has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. :smiley:

k8s-ci-robot avatar Aug 19 '21 14:08 k8s-ci-robot

Rebase is done

EIP-Laurent avatar Aug 27 '21 13:08 EIP-Laurent

How can i try it ? How long can it itake to be on official release ?

mecmus avatar Oct 16 '21 16:10 mecmus

How can i try it ? How long can it itake to be on official release ?

Hello,

To try it you have to :

  1. git clone -b feature/new-provider-efficientip https://github.com/EfficientIP-Labs/external-dns.git && cd external-dns
  2. make build
  3. ./build/external-dns --source=service --provider=efficientip --efficientip-host=EFFICIENTIP_HOST --no-efficientip-ssl-verify --efficientip-username=EFICIENTIP_USERNAME --efficientip-password=EFFICIENTIP_PASSWORD Just replace the EFFICIENTIP_XXX by the correct value matching your SOLIDserver.

For the official release I do not know.

Best regards.

EIP-Laurent avatar Oct 18 '21 12:10 EIP-Laurent

When i tried i got an issue : kubectl logs external-dns-57c5bc896d-jtsjc time="2022-02-06T22:34:47Z" level=info msg="config: {APIServerURL: KubeConfig: RequestTimeout:30s DefaultTargets:[] ContourLoadBalancerService:heptio-contour/contour GlooNamespace:gloo-system SkipperRouteGroupVersion:zalando.org/v1 Sources:[service] Namespace: AnnotationFilter: LabelFilter: FQDNTemplate: CombineFQDNAndAnnotation:false IgnoreHostnameAnnotation:false IgnoreIngressTLSSpec:false IgnoreIngressRulesSpec:false Compatibility: PublishInternal:false PublishHostIP:false AlwaysPublishNotReadyAddresses:false ConnectorSourceServer:localhost:8080 Provider:efficientip GoogleProject: GoogleBatchChangeSize:1000 GoogleBatchChangeInterval:1s GoogleZoneVisibility: DomainFilter:[ifpen.fr] ExcludeDomains:[] RegexDomainFilter: RegexDomainExclusion: ZoneNameFilter:[] ZoneIDFilter:[] AlibabaCloudConfigFile:/etc/kubernetes/alibaba-cloud.json AlibabaCloudZoneType: AWSZoneType: AWSZoneTagFilter:[] AWSAssumeRole: AWSBatchChangeSize:1000 AWSBatchChangeInterval:1s AWSEvaluateTargetHealth:true AWSAPIRetries:3 AWSPreferCNAME:false AWSZoneCacheDuration:0s AzureConfigFile:/etc/kubernetes/azure.json AzureResourceGroup: AzureSubscriptionID: AzureUserAssignedIdentityClientID: BluecatConfigFile:/etc/kubernetes/bluecat.json CloudflareProxied:false CloudflareZonesPerPage:50 CoreDNSPrefix:/skydns/ RcodezeroTXTEncrypt:false AkamaiServiceConsumerDomain: AkamaiClientToken: AkamaiClientSecret: AkamaiAccessToken: AkamaiEdgercPath: AkamaiEdgercSection: InfobloxGridHost: InfobloxWapiPort:443 InfobloxWapiUsername:admin InfobloxWapiPassword: InfobloxWapiVersion:2.3.1 InfobloxSSLVerify:true InfobloxView: InfobloxMaxResults:0 InfobloxFQDNRegEx: InfobloxCreatePTR:false InfobloxCacheDuration:0 DynCustomerName: DynUsername: DynPassword: EfficientIPHost:10.4.0.15 EfficientIPPort:443 EfficientIPUsername:terraform EfficientIPPassword:****** EfficientIPSSLVerify:false DynMinTTLSeconds:0 OCIConfigFile:/etc/kubernetes/oci.yaml InMemoryZones:[] OVHEndpoint:ovh-eu OVHApiRateLimit:20 PDNSServer:http://localhost:8081 PDNSAPIKey: PDNSTLSEnabled:false TLSCA: TLSClientCert: TLSClientCertKey: Policy:sync Registry:txt TXTOwnerID:default TXTPrefix: TXTSuffix: Interval:1m0s MinEventSyncInterval:5s Once:false DryRun:false UpdateEvents:false LogFormat:text MetricsAddress::7979 LogLevel:info TXTCacheInterval:0s TXTWildcardReplacement: ExoscaleEndpoint:https://api.exoscale.ch/dns ExoscaleAPIKey: ExoscaleAPISecret: CRDSourceAPIVersion:externaldns.k8s.io/v1alpha1 CRDSourceKind:DNSEndpoint ServiceTypeFilter:[] CFAPIEndpoint: CFUsername: CFPassword: RFC2136Host: RFC2136Port:0 RFC2136Zone: RFC2136Insecure:false RFC2136GSSTSIG:false RFC2136KerberosRealm: RFC2136KerberosUsername: RFC2136KerberosPassword: RFC2136TSIGKeyName: RFC2136TSIGSecret: RFC2136TSIGSecretAlg: RFC2136TAXFR:false RFC2136MinTTL:0s RFC2136BatchChangeSize:50 NS1Endpoint: NS1IgnoreSSL:false NS1MinTTLSeconds:0 TransIPAccountName: TransIPPrivateKeyFile: DigitalOceanAPIPageSize:50 ManagedDNSRecordTypes:[A CNAME] GoDaddyAPIKey: GoDaddySecretKey: GoDaddyTTL:0 GoDaddyOTE:false OCPRouterName:}" time="2022-02-06T22:34:47Z" level=info msg="Instantiating new Kubernetes client" time="2022-02-06T22:34:47Z" level=info msg="Using inCluster-config based on serviceaccount-token" time="2022-02-06T22:34:47Z" level=info msg="Created Kubernetes client https://10.244.128.1:443" time="2022-02-06T22:34:52Z" level=error msg="Failed to get Zone list from EfficientIP SOLIDserver" time="2022-02-06T22:34:52Z" level=error msg="Get "https://vmdev-ct-fb11:443/api/v2.0/dns/zone/list": dial tcp: lookup vmdev-ct-fb11 on 10.244.128.10:53: no such host"

I can't find where it get "vmdev-ct-fb11" as solidserver name

mecmus avatar Feb 06 '22 22:02 mecmus

Hello,

Ok I will take a look and come back to you,

for the vmdev-ct-fb11 it was a dummy name that have been used to generate the Go API used by the provider. This sould have been renamed.

My first impression is it looks like the Go API used to requests the SDS does match the one we had expect since the commit a4a4561

EIP-Laurent avatar Feb 17 '22 14:02 EIP-Laurent

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: EIP-Laurent Once this PR has been reviewed and has the lgtm label, please assign seanmalloy for approval by writing /assign @seanmalloy in a comment. For more information see:The Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

k8s-ci-robot avatar Sep 16 '22 08:09 k8s-ci-robot

@EIP-Laurent any news ?

perriea avatar Dec 14 '22 21:12 perriea

@EIP-Laurent any news ?

AlenversFr avatar Jan 06 '23 10:01 AlenversFr

@perriea @AlenversFr

Hi,

I have just corrected the conflict and I am waiting for the reviews.

EIP-Laurent avatar Jan 20 '23 15:01 EIP-Laurent

@mecmus, @njuettner or @seanmalloy can you review again ?

perriea avatar Jan 20 '23 17:01 perriea

Reviews will be so great please

jguyaud avatar Jan 31 '23 08:01 jguyaud

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: EIP-Laurent Once this PR has been reviewed and has the lgtm label, please assign seanmalloy for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

k8s-ci-robot avatar Mar 09 '23 09:03 k8s-ci-robot

Hello,

Any chance someone can review again to unlock this topic ?

Thanks in advance.

alexissavin avatar Apr 21 '23 07:04 alexissavin

We don't add providers anymore. They should soon be able to use the new plugin interface. See the plug-in provider pr.

szuecs avatar Apr 21 '23 11:04 szuecs

We don't add providers anymore. They should soon be able to use the new plugin interface. See the plug-in provider pr.

Sorry, but initial PR was submitted about 1.5 years ago.

Considering the efforts put into implementing this specific provider based on what was available back at this time, I hope you will reconsider this answer.

Kind regards.

alexissavin avatar Apr 21 '23 13:04 alexissavin

PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Apr 25 '23 06:04 k8s-ci-robot

Hi,

Any news on this? Is there a way to use externalDNS with EfficientIP solidserver (without RFC2136)?

sathieu avatar Jul 12 '23 09:07 sathieu

Hello, #3063 has been merged. All new providers needs to use this webhook mechanism. @EIP-Laurent You can rebase on a new repo this provider, using this mechanism. => I'm closing this PR. /close

mloiseleur avatar Oct 02 '23 11:10 mloiseleur

@mloiseleur: Closed this PR.

In response to this:

Hello, #3063 has been merged. All new providers needs to use this webhook mechanism. @EIP-Laurent You can rebase on a new repo this provider, using this mechanism. => I'm closing this PR. /close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Oct 02 '23 11:10 k8s-ci-robot