external-dns
external-dns copied to clipboard
Implement external provider for EfficientIP SOLIDserver
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
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.
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:
Rebase is done
How can i try it ? How long can it itake to be on official release ?
How can i try it ? How long can it itake to be on official release ?
Hello,
To try it you have to :
-
git clone -b feature/new-provider-efficientip https://github.com/EfficientIP-Labs/external-dns.git && cd external-dns
-
make build
-
./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.
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
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
[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.
Approvers can indicate their approval by writing /approve
in a comment
Approvers can cancel approval by writing /approve cancel
in a comment
@EIP-Laurent any news ?
@EIP-Laurent any news ?
@perriea @AlenversFr
Hi,
I have just corrected the conflict and I am waiting for the reviews.
@mecmus, @njuettner or @seanmalloy can you review again ?
Reviews will be so great please
[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.
Approvers can indicate their approval by writing /approve
in a comment
Approvers can cancel approval by writing /approve cancel
in a comment
Hello,
Any chance someone can review again to unlock this topic ?
Thanks in advance.
We don't add providers anymore. They should soon be able to use the new plugin interface. See the plug-in provider pr.
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.
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.
Hi,
Any news on this? Is there a way to use externalDNS with EfficientIP solidserver (without RFC2136)?
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: 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.